예제 #1
0
        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);
            }
        }
예제 #2
0
        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
                    }
                });
            }
        }