private void _vista_UsuarioDeseaGrabarDocmentosErp(object sender, DocumentoRecepcionERPArgumento e) { try { e.DocumentosDeRecepcion = ObtenerDocumentosErpParaGrabar(); var proceso = RecepcionServicio.GrabarRecepcionDesdeErp(e); if (proceso.Operacion.Resultado == ResultadoOperacionTipo.Error) { InteraccionConUsuarioServicio.Mensaje(proceso.Operacion.Mensaje); } else { _vista.LimpiarControles(); EnviarTareasAApi(proceso.Operadores); } } catch (Exception ex) { InteraccionConUsuarioServicio.Mensaje(ex.Message); } }
public DocumentoRecepcionERPArgumento GrabarRecepcionDesdeErp(DocumentoRecepcionERPArgumento documentoRecepcionErpArgumento) { try { BaseDeDatosServicio.BeginTransaction(); var op = new Operacion { Codigo = 0, Mensaje = "Proceso Exitoso", Resultado = ResultadoOperacionTipo.Exito }; var listaOperadores = new List <string>(); int taskIdConsolidado = -1; int polizaIdConsolidado = -1; foreach (var documentoErp in documentoRecepcionErpArgumento.DocumentosDeRecepcion) { //Grabar la poliza var poliza = new Poliza { NUMERO_ORDEN = documentoErp.DOC_NUM.ToString(), FECHA_DOCUMENTO = DateTime.Now, LAST_UPDATED_BY = documentoErp.LAST_UPDATE_BY, CLIENT_CODE = documentoErp.CODE_CLIENT, ACUERDO_COMERCIAL = documentoErp.TRADE_AGREEMENT, POLIZA_ASEGURADA = documentoErp.INSURANCE_POLICY , PolizaAssognedto = documentoErp.TASK_ASSIGNEDTO }; if (polizaIdConsolidado == -1) { op = GrabarPolizaDeRecepcion(poliza); if (op.Resultado == ResultadoOperacionTipo.Error) { BaseDeDatosServicio.Rollback(); return(new DocumentoRecepcionERPArgumento { Operacion = op }); } polizaIdConsolidado = int.Parse(op.DbData); } poliza.DOC_ID = polizaIdConsolidado; //Genera una tarea de recepcion var tarea = new Tarea { TASK_SUBTYPE = documentoErp.TYPE_RECEPTION , TASK_OWNER = documentoErp.LAST_UPDATE_BY , TASK_ASSIGNEDTO = documentoErp.TASK_ASSIGNEDTO , TASK_COMMENTS = string.Empty , REGIMEN = documentoErp.REGIMEN , CLIENT_OWNER = documentoErp.CODE_CLIENT , CLIENT_NAME = documentoErp.CLIENT_NAME , CODIGO_POLIZA_SOURCE2 = polizaIdConsolidado.ToString() , DOC_ID_SOURCE = polizaIdConsolidado , PRIORITY = int.Parse(documentoErp.PRIORITY) , IS_FROM_ERP = "1" , LOCATION_SPOT_TARGET = documentoErp.LOCATION_SPOT_TARGET , OWNER = documentoErp.OWNER }; if (!documentoRecepcionErpArgumento.Consolidado) { op = GrabarTareaDeRecepcionGeneral(tarea); if (op.Resultado == ResultadoOperacionTipo.Error) { BaseDeDatosServicio.Rollback(); return(new DocumentoRecepcionERPArgumento { Operacion = op }); } else { documentoErp.TASK_ID = int.Parse(op.DbData); } polizaIdConsolidado = -1; } else { if (taskIdConsolidado == -1) { op = GrabarTareaDeRecepcionGeneral(tarea); if (op.Resultado == ResultadoOperacionTipo.Error) { BaseDeDatosServicio.Rollback(); return(new DocumentoRecepcionERPArgumento { Operacion = op }); } taskIdConsolidado = int.Parse(op.DbData); } documentoErp.TASK_ID = taskIdConsolidado; } listaOperadores.Add(documentoErp.TASK_ASSIGNEDTO); //Grabar el documento de erp documentoErp.DOC_ID_POLIZA = poliza.DOC_ID; op = GrabarDocumentoRecepcionErp(documentoErp); if (op.Resultado == ResultadoOperacionTipo.Error) { BaseDeDatosServicio.Rollback(); return(new DocumentoRecepcionERPArgumento { Operacion = op }); } } BaseDeDatosServicio.Commit(); return(new DocumentoRecepcionERPArgumento { Operacion = op, Operadores = listaOperadores }); } catch (DbException ex) { BaseDeDatosServicio.Rollback(); return(new DocumentoRecepcionERPArgumento { Operacion = new Operacion { Codigo = ex.ErrorCode, Mensaje = ex.Message, Resultado = ResultadoOperacionTipo.Error } }); } catch (Exception ex) { BaseDeDatosServicio.Rollback(); return(new DocumentoRecepcionERPArgumento { Operacion = new Operacion { Codigo = -1, Mensaje = ex.Message, Resultado = ResultadoOperacionTipo.Error } }); } }