thegreenter / greenter

Facturación Electrónica - SUNAT - PE :four_leaf_clover:
https://greenter.dev
MIT License
272 stars 138 forks source link

Resumen Diario: No se indica el código de tipo de operacion #62

Closed byJuanjo closed 5 years ago

byJuanjo commented 5 years ago

ESTIMADOS

Buenas noches, una consulta al momento de enviar el resumen diario en entorno BETA me sale el siguiente error:

captura de pantalla 2019-02-27 a la s 19 09 10

Dejo el codigo que estoy utilizando para generar el resumen: `public function generarResumen1(Request $request){ $util = Util::getInstance(); $fecha_resumen=$request->fecha_resumen; $boletas=Facturas::BuscarPendientesPorDia($fecha_resumen)->get(); $items=[]; foreach($boletas as $boleta){ if($boleta->setTipoDoc=='03'){ $setSerieNro=$boleta->setSerie.'-'.$boleta->setCorrelativo; $detiail1 = new SummaryDetail(); $detiail1->setTipoDoc('03') ->setSerieNro($setSerieNro) ->setEstado('1') ->setClienteTipo('1') ->setClienteNro($boleta->cliente_setNumDoc) ->setTotal($boleta->setMtoImpVenta) ->setMtoOperGravadas($boleta->setMtoOperGravadas) ->setMtoIGV($boleta->setMtoIGV); }else if($boleta->setTipoDoc=='07' || $boleta->setTipoDoc=='08'){ $setSerieNro=$boleta->setSerie.'-'.$boleta->setCorrelativo; $detiail1 = new SummaryDetail(); $detiail1->setTipoDoc($boleta->setTipoDoc) ->setSerieNro($setSerieNro) ->setDocReferencia((new Document()) ->setTipoDoc($boleta->setTipDocAfectado) //TIPO DE DOCUMENTO DE LA BOLETA ANULADA ->setNroDoc($boleta->setNumDocfectado) //NUMERO DE DOCUMENTO DE LA BOLETA ANULADA ) ->setEstado('1') ->setClienteTipo('1') ->setClienteNro($boleta->cliente_setNumDoc) ->setTotal($boleta->setMtoImpVenta) ->setMtoOperGravadas($boleta->setMtoOperGravadas) ->setMtoIGV($boleta->setMtoIGV); } $items[] = $detiail1; }

$sum = new Summary();
$sum->setFecGeneracion(new \DateTime($fecha_resumen))
    ->setFecResumen(new \DateTime($fecha_resumen))
    ->setCorrelativo('001')
    ->setCompany($util->getCompany())
    ->setDetails([$items]);

//PREPARACION DE ENVIO CON LOS ITEMS CREADOS
$sum->setFecGeneracion(new \DateTime($fecha_resumen));
$sum->setFecResumen(new \DateTime($fecha_resumen));
// Envio a SUNAT.
$see = $util->getSee(SunatEndpoints::FE_BETA);
//$see = $util->getSee(SunatEndpoints::FE_PRODUCCION);
$res = $see->send($sum);

$util->writeXml($sum, $see->getFactory()->getLastXml());

if ($res->isSuccess()) {
  $ticket = $res->getTicket();
  echo 'Ticket :<strong>' . $ticket .'</strong>';
  $result = $see->getStatus($ticket);

  if ($result->isSuccess()) {
    $cdr = $result->getCdrResponse();
    $util->writeCdr($sum, $result->getCdrZip());
    $util->showResponse($sum, $cdr);
  } else {
    echo $util->getErrorResponse($result->getError());
  }
}else{
  echo $util->getErrorResponse($res->getError());
}

}`

giansalex commented 5 years ago

Ese mensaje indica que no estas enviando el valor en el campo estado, puedes hacer un var_dump de los detalles antes de generar el xml, para verificar cual de ellos no tiene valor en estado

byJuanjo commented 5 years ago

Hola estimado, mira todos tienen su estado (borre los datos del usuario por temas de seguirdad), que crees que me pueda estar pasando?

Summary {#1094

correlativo: "001"

fecGeneracion: DateTime {#1113

+"date": "2019-02-27 14:39:30.391961"
+"timezone_type": 3
+"timezone": "UTC"

}

fecResumen: DateTime {#1102

+"date": "2019-02-27 14:39:30.391964"
+"timezone_type": 3
+"timezone": "UTC"

}

moneda: "PEN"

company: Company {#1111

-ruc: "00000000000"
-razonSocial: "----------"
-nombreComercial: "-----------"
-address: Address {#1112
  -ubigueo: "150133"
  -codigoPais: "PE"
  -departamento: "LIMA"
  -provincia: "LIMA"
  -distrito: "SAN JUAN DE MIRAFLORES"
  -urbanizacion: "-"
  -direccion: "-------"
  -codLocal: "0000"
}
-email: null
-telephone: null

}

details: array:1 [

0 => array:3 [
  0 => SummaryDetail {#1101
    -tipoDoc: "03"
    -serieNro: "B001-10"
    -clienteTipo: "1"
    -clienteNro: "08791464"
    -docReferencia: null
    -percepcion: null
    -estado: "3"
    -total: "1067.80"
    -mtoOperGravadas: "904.92"
    -mtoOperInafectas: null
    -mtoOperExoneradas: null
    -mtoOperExportacion: null
    -mtoOperGratuitas: null
    -mtoOtrosCargos: null
    -mtoIGV: "162.88"
    -mtoIvap: null
    -mtoISC: null
    -mtoOtrosTributos: null
  }
  1 => SummaryDetail {#1106
    -tipoDoc: "03"
    -serieNro: "B001-11"
    -clienteTipo: "1"
    -clienteNro: "09272916"
    -docReferencia: null
    -percepcion: null
    -estado: "1"
    -total: "1067.80"
    -mtoOperGravadas: "904.92"
    -mtoOperInafectas: null
    -mtoOperExoneradas: null
    -mtoOperExportacion: null
    -mtoOperGratuitas: null
    -mtoOtrosCargos: null
    -mtoIGV: "162.88"
    -mtoIvap: null
    -mtoISC: null
    -mtoOtrosTributos: null
  }
  2 => SummaryDetail {#1104
    -tipoDoc: "07"
    -serieNro: "FF01-4"
    -clienteTipo: "1"
    -clienteNro: "08791464"
    -docReferencia: Document {#1096
      -tipoDoc: "03"
      -nroDoc: "B001-10"
    }
    -percepcion: null
    -estado: "1"
    -total: "1067.80"
    -mtoOperGravadas: "904.92"
    -mtoOperInafectas: null
    -mtoOperExoneradas: null
    -mtoOperExportacion: null
    -mtoOperGratuitas: null
    -mtoOtrosCargos: null
    -mtoIGV: "162.88"
    -mtoIvap: null
    -mtoISC: null
    -mtoOtrosTributos: null
  }
]

] }

giansalex commented 5 years ago

si no has hecho ninguna modificacion al codigo fuente, elimina la carpeta var y vendor, actualiza el repositorio git pull, vuelve a instalar los paquetes composer install. Probando desde postman, cuando no se envia el campo estado sale ese error: image

byJuanjo commented 5 years ago

Ya encontre la solucion fue un error al momento de armar el array para el summary, estaba metiendo un array dentro de otro array, gracias por el apoyo @giansalex