Exemplo n.º 1
0
        public static void ActualizarDatosFactura(ResponsePublicarNF responseNF, Int32 nuevoEstado, long idDocumentoFiscalERP)
        {
            DBAxon db = new DBAxon();

            db.OpenFactoryConnection();

            try
            {
                db.BeginTransaction();
                db.SetLockModeToWait();
                db.SetDateFormat();

                if (responseNF != null)
                {
                    #region RESPUESTA
                    int responsequery = 0;

                    string codRespuesta = responseNF.respuesta.codRespuesta;

                    string txtRespuesta = responseNF.respuesta.txtRespuesta;
                    #endregion

                    DBAxon.Parameters[] prs = new DBAxon.Parameters[4]
                    {
                        new DBAxon.Parameters("nuevoEstado", nuevoEstado, ParameterDirection.Input, DbType.Int32),
                        new DBAxon.Parameters("codRespuesta", codRespuesta, ParameterDirection.Input, DbType.String, 10),
                        new DBAxon.Parameters("txtRespuesta", txtRespuesta, ParameterDirection.Input, DbType.String, 200),
                        new DBAxon.Parameters("idDocumentoFiscalERP", idDocumentoFiscalERP, ParameterDirection.Input, DbType.Int32)
                    };
                    string queryUpdate = "UPDATE fehfe SET fehfepnfe=?, fehfepnfc=? , fehfepnft=? " +
                                         "WHERE fehfeiddf=?";

                    responsequery = db.ExecuteNonQuery(CommandType.Text, queryUpdate, prs);
                    if (responsequery > 0)
                    {
                        db.CommitTransaction();
                    }
                }
            }
            catch (Exception eEx)
            {
                db.RollbackTransaction();
                throw new Exception(eEx.Message, eEx);
            }
            finally
            {
                db.CloseFactoryConnection();
                db = null;
            }
        }
Exemplo n.º 2
0
        public bool ActualizarDatosFactura(ResponseFactura respuestaFacturaEstandar)
        {
            DBAxon db = new DBAxon();

#if DEBUG
            System.Diagnostics.Stopwatch cronoDB = new System.Diagnostics.Stopwatch();
            cronoDB.Start();
#endif
            db.OpenFactoryConnection();
            int updateCabecera = 0;
            int updateItem     = 0;

            try
            {
                db.BeginTransaction();
                db.SetLockModeToWait();
                db.SetDateFormat();

                if (respuestaFacturaEstandar != null && respuestaFacturaEstandar.Proceso != null && respuestaFacturaEstandar.Factura != null)
                {
                    #region RESPUESTA
                    string codRespuesta = respuestaFacturaEstandar.Respuesta.CodRespuesta;
                    string txtRespuesta = respuestaFacturaEstandar.Respuesta.TxtRespuesta;
                    #endregion

                    #region PROCESO
                    string idDocFiscalERP    = respuestaFacturaEstandar.Proceso.IdDocFiscalERP;
                    string idDocFiscalFEEL   = respuestaFacturaEstandar.Proceso.IdDocFiscalFEEL;
                    string cufd              = respuestaFacturaEstandar.Proceso.CUFD;
                    string codEstado         = respuestaFacturaEstandar.Proceso.CodEstado;
                    int    codigoTipoFactura = respuestaFacturaEstandar.Proceso.CodigoTipoFactura;
                    #endregion

                    #region FACTURA ESTANDAR

                    //CABECERA
                    string fechaEmision = respuestaFacturaEstandar.Factura.Cabecera.FechaEmision;
                    string codigoTipoDocumentoIdentidad = respuestaFacturaEstandar.Factura.Cabecera.CodigoTipoDocumentoIdentidad;
                    string cuf                   = respuestaFacturaEstandar.Factura.Cabecera.CUF;
                    int    codigoSucursal        = respuestaFacturaEstandar.Factura.Cabecera.CodigoSucursal;
                    int    codigoPuntoVenta      = respuestaFacturaEstandar.Factura.Cabecera.CodigoPuntoVenta;
                    int    codigoDocumentoSector = respuestaFacturaEstandar.Factura.Cabecera.CodigoDocumentoSector;
                    int    codigoMetodoPago      = respuestaFacturaEstandar.Factura.Cabecera.CodigoMetodoPago;
                    string leyenda               = respuestaFacturaEstandar.Factura.Cabecera.Leyenda;
                    int    codigoMoneda          = respuestaFacturaEstandar.Factura.Cabecera.CodigoMoneda;

                    DBAxon.Parameters[] prs = new DBAxon.Parameters[16]
                    {
                        new DBAxon.Parameters("codRespuesta", codRespuesta, ParameterDirection.Input, DbType.String, 10),
                        new DBAxon.Parameters("txtRespuesta", txtRespuesta, ParameterDirection.Input, DbType.String, 200),

                        new DBAxon.Parameters("idDocFiscalFEEL", idDocFiscalFEEL, ParameterDirection.Input, DbType.String, 20),
                        new DBAxon.Parameters("cufd", cufd, ParameterDirection.Input, DbType.String, 100),
                        new DBAxon.Parameters("codEstado", codEstado, ParameterDirection.Input, DbType.String, 10),
                        new DBAxon.Parameters("codigoTipoFactura", codigoTipoFactura, ParameterDirection.Input, DbType.Int32),

                        new DBAxon.Parameters("fechaEmision", fechaEmision, ParameterDirection.Input, DbType.String, 20),
                        new DBAxon.Parameters("codigoTipoDocumentoIdentidad", codigoTipoDocumentoIdentidad, ParameterDirection.Input, DbType.Int32),
                        new DBAxon.Parameters("cuf", cuf, ParameterDirection.Input, DbType.String, 50),
                        new DBAxon.Parameters("codigoSucursal", codigoSucursal, ParameterDirection.Input, DbType.Int32),
                        new DBAxon.Parameters("codigoPuntoVenta", codigoPuntoVenta, ParameterDirection.Input, DbType.Int32),
                        new DBAxon.Parameters("codigoDocumentoSector", codigoDocumentoSector, ParameterDirection.Input, DbType.Int32),
                        new DBAxon.Parameters("codigoMetodoPago", codigoMetodoPago, ParameterDirection.Input, DbType.Int16),
                        new DBAxon.Parameters("leyenda", leyenda, ParameterDirection.Input, DbType.String, 200),
                        new DBAxon.Parameters("codigoMoneda", codigoMoneda, ParameterDirection.Input, DbType.Int32),
                        new DBAxon.Parameters("idDocFiscalERP", idDocFiscalERP, ParameterDirection.Input, DbType.Int32)
                    };

                    string queryUpdate = "UPDATE fehfe SET fehfecres=?, fehfetres=? , fehfeifee=?, fehfecufd=?, " +
                                         "fehfecsta=?, fehfectip=?,  fehfefemi=?, fehfectdi=?, fehfeccuf=?, fehfecsuc=?, " +
                                         "fehfecpve=?, fehfecdse=?, fehfecmpa=?, fehfeleye=?, fehfecmon=? , fehfestat=" + int.Parse(EstadoDocumentoFiscal.E102_ProcesadaCorrectamente.ToString()) +
                                         " WHERE fehfeiddf=?";

                    updateCabecera = db.ExecuteNonQuery(CommandType.Text, queryUpdate, prs);

                    #endregion

                    if (updateCabecera > 0)
                    {
                        #region DETALLE
                        dynamic factura = Convert.ChangeType(respuestaFacturaEstandar.Factura, respuestaFacturaEstandar.Factura.GetType());

                        if (factura.Tipo != TipoFactura.notaExportacion)
                        {
                            foreach (var item in factura.ListaDetalle)
                            {
                                int?actividadEconomica = item.ActividadEconomica ?? null;
                                int?codigoProductoSin  = item.CodigoProductoSIN ?? null;

                                DBAxon.Parameters[] prs2 = new DBAxon.Parameters[2]
                                {
                                    new DBAxon.Parameters("actividadEconomica", actividadEconomica, ParameterDirection.Input, DbType.Int32),
                                    new DBAxon.Parameters("codigoProductoSin", codigoProductoSin, ParameterDirection.Input, DbType.Int32)
                                };

                                updateItem = db.ExecuteNonQuery(CommandType.Text, "UPDATE fedfe SET fedfeaeco=?, fedfecpsi=? " +
                                                                "WHERE fedfeiddf =" + idDocFiscalERP, prs2);
                            }
                        }
                        else
                        {
                            foreach (var item in factura.ListaDetalle)
                            {
                                int?actividadEconomica = item.ActividadEconomica ?? null;
                                int?codigoProductoSin  = item.CodigoProductoSIN ?? null;

                                DBAxon.Parameters[] prs2 = new DBAxon.Parameters[3]
                                {
                                    new DBAxon.Parameters("actividadEconomica", actividadEconomica, ParameterDirection.Input, DbType.Int32),
                                    new DBAxon.Parameters("codigoProductoSin", codigoProductoSin, ParameterDirection.Input, DbType.Int32),
                                    new DBAxon.Parameters("codigoNandina", item.CodigoNandina, ParameterDirection.Input, DbType.Int32)
                                };

                                updateItem = db.ExecuteNonQuery(CommandType.Text, "UPDATE fedfe SET fedfeaeco=?, fedfecpsi=?, fedfecnan=? " +
                                                                "WHERE fedfeiddf =" + idDocFiscalERP, prs2);
                            }
                        }

                        db.CommitTransaction();
                        #endregion

#if DEBUG
                        cronoDB.Stop();
                        Cronometro.Instancia.TotalMs += cronoDB.ElapsedMilliseconds;
#endif
                    }
                }
                else
                {
                    //string file = Log.Instancia.GeneraNombreLog();
                    //file += respuestaFacturaEstandar.Proceso.IdDocFiscalERP;
                    //Log.Instancia.LogWS_Mensaje_FSX(file, "Esta nulo o respuestaFacturaEstandar ó respuestaFacturaEstandar.Proceso ó respuestaFacturaEstandar.Factura");
                }

                return((updateCabecera + updateItem) >= 2);
            }
            catch (Exception eEx)
            {
                db.RollbackTransaction();
                throw new Exception(eEx.Message, eEx);
            }
            finally
            {
                db.CloseFactoryConnection();
                db = null;
            }
        }