Exemplo n.º 1
0
        public int GuardarDesgloseCA(SolicitarFactFileNM solicitarFactFile)
        {
            UnidadNegocioKeys?unidadNegocio = UnidadNegocioKeys.AppWebs;
            OracleTransaction objTx = null; OracleConnection objConn = null;

            try
            {
                ExecuteConexionBegin(unidadNegocio.ToConnectionKey(), ref objTx, ref objConn);

                var result = GuardarDatosFacturacion(solicitarFactFile, objTx, objConn);

                if (solicitarFactFile.existeIdDatosFacturacion)
                {
                    EliminarDetalleTarifa(solicitarFactFile, objTx, objConn);
                    EliminarDetalleNoRecibos(solicitarFactFile, objTx, objConn);
                }

                GuardarDetalleTarifa(solicitarFactFile, objTx, objConn);
                GuardarDetalleNoRecibo(solicitarFactFile, objTx, objConn);

                objTx.Commit();
                return(result);
            }
            catch (Exception ex)
            {
                objTx.Rollback();
                throw ex;
            }
        }
Exemplo n.º 2
0
        public void GuardarArchivo(SolicitarFactFileNM solicitarFactFile, int idDatosFacturacion, int idUsuario)
        {
            // Protección
            if (solicitarFactFile.ArchivoList == null || solicitarFactFile.ArchivoList.Count == 0)
            {
                return;
            }

            // Invocación
            var spName = "APPWEBS.PKG_Desglose_CA.SP_INSERTAR_ARCHIVOS";

            foreach (var archivo in solicitarFactFile.ArchivoList)
            {
                if (!archivo.IsValid)
                {
                    continue;
                }

                AddParameter("pRutaArchivo", OracleDbType.NVarchar2, archivo.RutaArchivo);
                AddParameter("pNombreArchivo", OracleDbType.NVarchar2, archivo.NomArchivo);
                AddParameter("pExtensionArchivo", OracleDbType.NVarchar2, archivo.ExtArchivo); // (!) Item.ExtensionArchivo
                AddParameter("pIdDatosFacturacion", OracleDbType.Int32, idDatosFacturacion);
                AddParameter("pIdUsuWebCrea", OracleDbType.Int32, idUsuario);
                AddParameter("pUrlArchivo", OracleDbType.NVarchar2, archivo.UrlArchivo);

                ExecuteStoredProcedure(spName);
            }
        }
Exemplo n.º 3
0
        private void GuardarDetalleTarifa(SolicitarFactFileNM solicitarFactFile, OracleTransaction objTx, OracleConnection objConn)
        {
            // Protección
            if (solicitarFactFile.TarifaDetalleList == null || solicitarFactFile.TarifaDetalleList.Count == 0)
            {
                return;
            }

            // Invocación
            foreach (var tarifaDetalle in solicitarFactFile.TarifaDetalleList)
            {
                var spName = "APPWEBS.PKG_DESGLOSE_CA.SP_INSERTAR_TARIFA";

                AddParameter("pCantidadADT", OracleDbType.Int32, tarifaDetalle.CantidadADT);
                AddParameter("pTarifaPorADT", OracleDbType.Decimal, tarifaDetalle.TarifaPorADT);
                AddParameter("pCatindadCHD", OracleDbType.Int32, tarifaDetalle.CantidadCHD);
                AddParameter("pTarifaPorCHD", OracleDbType.Decimal, tarifaDetalle.TarifaPorCHD);
                AddParameter("pCantidadINF", OracleDbType.Int32, tarifaDetalle.CantidadCHD);
                AddParameter("pTarifaPorINF", OracleDbType.Decimal, tarifaDetalle.TarifaINF);
                AddParameter("pIdDatosFacturacion", OracleDbType.Int32, tarifaDetalle.IdDatosFacturacion);
                AddParameter("pIdGrupoServicio", OracleDbType.Int32, tarifaDetalle.IdGrupoServicio);
                AddParameter("pMontoPorADT", OracleDbType.Decimal, tarifaDetalle.MontoPorADT);
                AddParameter("pMontoPorCHD", OracleDbType.Decimal, tarifaDetalle.MontoPorCHD);
                AddParameter("pMontoPorINF", OracleDbType.Decimal, tarifaDetalle.MontoPorINF);
                AddParameter("pGrupoServicio", OracleDbType.NVarchar2, tarifaDetalle.GrupoServicio);

                ExecuteStorePBeginCommit(spName, objTx, objConn);
            }
        }
Exemplo n.º 4
0
        private void EliminarDetalleNoRecibos(SolicitarFactFileNM solicitarFactFile, OracleTransaction objTx, OracleConnection objConn)
        {
            var spName = "APPWEBS.PKG_DESGLOSE_CA.SP_ELIMINAR_DETALLENORECIBOS";

            AddParameter("pIdDatosFacturacion", OracleDbType.Int32, solicitarFactFile.iddatosfacturacion);

            ExecuteStorePBeginCommit(spName, objTx, objConn);
        }
Exemplo n.º 5
0
        private int GuardarDatosFacturacion(SolicitarFactFileNM solicitarFactFile, OracleTransaction objTx, OracleConnection objConn)
        {
            var spName = solicitarFactFile.existeIdDatosFacturacion ?
                         "APPWEBS.PKG_DESGLOSE_CA.SP_ACTUALIZAR_DATOSFACTURACION" :
                         "APPWEBS.PKG_DESGLOSE_CA.SP_INSERTAR_DATOSFACTURACION";

            if (solicitarFactFile.existeIdDatosFacturacion)
            {
                AddParameter("pIdDatosFacturacion", OracleDbType.Int32, solicitarFactFile.iddatosfacturacion);
            }

            AddParameter("pEstado", OracleDbType.Int32, solicitarFactFile.estado);
            AddParameter("pDK", OracleDbType.NVarchar2, solicitarFactFile.dk);
            AddParameter("pSubCodigo", OracleDbType.NVarchar2, solicitarFactFile.subcodigo);
            AddParameter("pEjecutiva", OracleDbType.NVarchar2, solicitarFactFile.comisionista); // (!) Orig., model.Ejecutiva
            AddParameter("pNumfileNM", OracleDbType.NVarchar2, solicitarFactFile.numfilenm);
            AddParameter("pNumfileDM", OracleDbType.NVarchar2, solicitarFactFile.numfiledm);
            AddParameter("pCCB", OracleDbType.NVarchar2, solicitarFactFile.ccb);
            AddParameter("pRUC", OracleDbType.NVarchar2, string.Empty); // (!) Orig., model.RUC
            AddParameter("pRAZON", OracleDbType.NVarchar2, solicitarFactFile.razonsocial);
            AddParameter("pTipoDocumento", OracleDbType.NVarchar2, solicitarFactFile.tipodocidentidad);
            AddParameter("PDoc_Cid", OracleDbType.NVarchar2, string.Empty);
            AddParameter("pDOCUMENTO", OracleDbType.NVarchar2, solicitarFactFile.numdocidentidad); // (!) Orig., model.Documento
            AddParameter("pNombre", OracleDbType.NVarchar2, solicitarFactFile.nombre);
            AddParameter("pApellidoP", OracleDbType.NVarchar2, solicitarFactFile.apepaterno);
            AddParameter("pApellidoM", OracleDbType.NVarchar2, solicitarFactFile.apemateno);
            AddParameter("pOARippley", OracleDbType.NVarchar2, solicitarFactFile.oaripley);
            AddParameter("pMontoOA", OracleDbType.Decimal, solicitarFactFile.oamonto);
            AddParameter("pIdUsuario", OracleDbType.Int32, solicitarFactFile.idusuario);
            AddParameter("pCot_Id", OracleDbType.Int32, solicitarFactFile.cotid);
            AddParameter("pCampania", OracleDbType.NVarchar2, solicitarFactFile.campania);
            AddParameter("pCorreo", OracleDbType.NVarchar2, solicitarFactFile.correo);
            AddParameter("pBanco", OracleDbType.NVarchar2, solicitarFactFile.banco);
            AddParameter("pCantidadMillas", OracleDbType.NVarchar2, solicitarFactFile.cantidadmillas);
            AddParameter("pMontoMillas", OracleDbType.Decimal, solicitarFactFile.montomillas);
            AddParameter("pObservacion", OracleDbType.Clob, solicitarFactFile.observaciones);

            var idDatosFactura = string.Empty;

            if (solicitarFactFile.existeIdDatosFacturacion)
            {
                ExecuteStorePBeginCommit(spName, objTx, objConn);
                idDatosFactura = solicitarFactFile.iddatosfacturacion;
            }
            else
            {
                AddParameter("pNumId_out", OracleDbType.Int32, DBNull.Value, ParameterDirection.Output);
                ExecuteStorePBeginCommit(spName, objTx, objConn);
                idDatosFactura = GetOutParameter("pNumId_out").ToString();
            }

            return(int.Parse(idDatosFactura));
        }
Exemplo n.º 6
0
        private void GuardarDetalleNoRecibo(SolicitarFactFileNM solicitarFactFile, OracleTransaction objTx, OracleConnection objConn)
        {
            // Protección
            if (solicitarFactFile.ReciboDetalleList == null || solicitarFactFile.ReciboDetalleList.Count == 0)
            {
                return;
            }

            // Invocación
            foreach (var reciboDetalle in solicitarFactFile.ReciboDetalleList)
            {
                var spName = "APPWEBS.PKG_DESGLOSE_CA.SP_INSERTAR_NORECIBO";

                AddParameter("pNoRecibo", OracleDbType.NVarchar2, reciboDetalle.NoRecibo);
                AddParameter("pMontoRecibo", OracleDbType.Decimal, reciboDetalle.MontoRecibo);
                AddParameter("pEstado", OracleDbType.Int32, 1);
                AddParameter("pIdSucursal", OracleDbType.Int32, reciboDetalle.IdSucursal);
                AddParameter("pIdDatosFacturacion", OracleDbType.Int32, reciboDetalle.IdDatosFacturacion);
                AddParameter("pSucursal", OracleDbType.NVarchar2, reciboDetalle.Sucursal);

                ExecuteStorePBeginCommit(spName, objTx, objConn);
            }
        }
        public IHttpActionResult Read(SolicitarFactFileNM solicitarFactFileNM)
        {
            var codMessage = string.Empty;
            var exMessage  = string.Empty;

            try
            {
                var usuarioLogin = _datosUsuario.Get_Dts_Usuario_Personal_NM(solicitarFactFileNM.idusuariosrv_SF);
                if (usuarioLogin != null && usuarioLogin.IdUsuario != solicitarFactFileNM.idusuariosrv_SF)
                {
                    solicitarFactFileNM.idusuariosrv_SF = usuarioLogin.IdUsuario;
                }

                var result = _solicitarFactFileNMRepository.GuardarDesgloseCA(solicitarFactFileNM);

                if (solicitarFactFileNM.existeArchivoList)
                {
                    _solicitarFactFileNMRepository.GuardarArchivo(solicitarFactFileNM, result, int.Parse(solicitarFactFileNM.idusuario));
                }

                if (solicitarFactFileNM.existeIdDatosFacturacion)
                {
                    var archivoList = _solicitarFactFileNMRepository.ObtenerArchivos(solicitarFactFileNM.iddatosfacturacion);
                }

                var textoPost = TemplateHtml(solicitarFactFileNM);

                if (solicitarFactFileNM.enviarCA)
                {
                    var objOficina = _datosOficina.ObtieneOficinaXId(usuarioLogin.IdOfi);
                    if (_solicitarFactFileNMRepository.EsAreaCounterPresencial(usuarioLogin.IdOfi, usuarioLogin.IdDep, objOficina.bolEsRipley))
                    {
                        _cotizSrvRepository._Liberar_UsuWeb_CA(solicitarFactFileNM.intCotId);
                    }


                    _cotizSrvRepository.Inserta_Post_Cot(
                        solicitarFactFileNM.intCotId,
                        "1",
                        textoPost,
                        "127.0.0.0",
                        usuarioLogin.LoginUsuario,
                        usuarioLogin.IdUsuario,
                        usuarioLogin.IdDep,
                        usuarioLogin.IdOfi,
                        null,
                        null,
                        Constantes_SRV.INT_ID_ESTADO_COT_DERIVADO_A_CA,
                        true,
                        null,
                        false,
                        null,
                        false,
                        usuarioLogin.IdUsuario,
                        usuarioLogin.IdOfi,
                        usuarioLogin.IdDep,
                        null,
                        null,
                        null,
                        null,
                        null
                        );
                }
                codMessage = "OK"; exMessage = "El proceso se realizó con éxito";
                return(Ok(new
                {
                    Codigo = codMessage,
                    Mensaje = exMessage
                }));
            }
            catch (Exception ex)
            {
                codMessage = "ER"; exMessage = ex.Message;
                return(Ok(new
                {
                    Codigo = codMessage,
                    Mensaje = exMessage
                }));
            }
            finally
            {
                (new
                {
                    Request = solicitarFactFileNM,
                    Response = new
                    {
                        Codigo = codMessage,
                        Mensaje = exMessage
                    }
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
        private string TemplateHtml(SolicitarFactFileNM solicitarFactFileNM)
        {
            try
            {
                var str = GenerarHtmlByRender(@"~/App_Data/TemplateDesglose.html");

                str = str.Replace("[DK]", solicitarFactFileNM.dk);
                str = str.Replace("[campania]", solicitarFactFileNM.campania);
                str = str.Replace("[SubCodigo]", solicitarFactFileNM.subcodigo);
                //.Replace("[Ejecutiva]", solicitarFactFileNM.ejecutiva)
                str = str.Replace("[NumFileNM]", solicitarFactFileNM.numfilenm);
                str = str.Replace("[NumFileDM]", solicitarFactFileNM.numfiledm);
                str = str.Replace("[CCB]", solicitarFactFileNM.ccb);
                //.Replace("[Ruc]", solicitarFactFileNM.ruc);
                str = str.Replace("[Razon]", solicitarFactFileNM.razonsocial);
                str = str.Replace("[Correo]", solicitarFactFileNM.correo);
                str = str.Replace("[TipoDocum]", solicitarFactFileNM.tipodocidentidad);
                //.Replace("[Descripcion_Doc_Cid]", solicitarFactFileNM.Descripcion_Doc_Cid);
                str = str.Replace("[Documento]", solicitarFactFileNM.numdocidentidad);
                str = str.Replace("[Nombre]", solicitarFactFileNM.nombre);
                str = str.Replace("[ApellidoP]", solicitarFactFileNM.apepaterno);
                str = str.Replace("[ApellidoM]", solicitarFactFileNM.apemateno);
                str = str.Replace("[OaRipley]", solicitarFactFileNM.oaripley);
                str = str.Replace("[MontoOA]", solicitarFactFileNM.oamonto);
                str = str.Replace("[Banco]", solicitarFactFileNM.banco);
                str = str.Replace("[CantidadMillas]", solicitarFactFileNM.cantidadmillas);
                str = str.Replace("[MontoMillas]", solicitarFactFileNM.montomillas);

                // Template Detalles de N° Recibo
                StringBuilder sbPostsRC = new StringBuilder();
                if (!(solicitarFactFileNM.ReciboDetalleList == null || solicitarFactFileNM.ReciboDetalleList.Count == 0))
                {
                    foreach (var reciboDetalle in solicitarFactFileNM.ReciboDetalleList)
                    {
                        sbPostsRC.Append(
                            "<tr>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            reciboDetalle.Sucursal +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            reciboDetalle.NoRecibo +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            string.Format("{0:0.00}", reciboDetalle.MontoRecibo) +
                            "</td>" +
                            "</tr>");
                    }
                }
                str = str.Replace("[trContentRC]", sbPostsRC.ToString());

                var sbPostsDTF = new StringBuilder();
                var montoTotalADT = new double(); var montoTotalCHD = new double(); var montoTotalINF = new double();
                if (!(solicitarFactFileNM.TarifaDetalleList == null || solicitarFactFileNM.TarifaDetalleList.Count == 0))
                {
                    foreach (var tarifaDetalle in solicitarFactFileNM.TarifaDetalleList)
                    {
                        sbPostsDTF.Append(
                            "<tr>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            tarifaDetalle.GrupoServicio +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            tarifaDetalle.CantidadADT +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            string.Format("{0:0.00}", tarifaDetalle.MontoPorADT) +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            tarifaDetalle.CantidadCHD +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            string.Format("{0:0.00}", tarifaDetalle.MontoPorCHD) +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            tarifaDetalle.CantidadINF +
                            "</td>" +
                            "<td style='font-size:12px; padding:5px; text-align:center; border-top:1px solid black;'>" +
                            string.Format("{0:0.00}", tarifaDetalle.MontoPorINF) +
                            "</td>" +
                            "</tr>");

                        montoTotalADT += tarifaDetalle.MontoPorADT;
                        montoTotalCHD += tarifaDetalle.MontoPorCHD;
                        montoTotalINF += tarifaDetalle.MontoPorINF;
                    }
                }

                sbPostsDTF.Append(
                    "<tr>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210); color:#BC0606;'><strong>Total</strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210); color:#BC0606;'></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210);'><strong>" +
                    string.Format("{0:0.00}", montoTotalADT) +
                    "</strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210); color:#BC0606;'></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210);'><strong>" +
                    string.Format("{0:0.00}", montoTotalCHD) +
                    "</strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210); color:#BC0606;'></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; background-color: rgb(202,207,210);'><strong>" +
                    string.Format("{0:0.00}", montoTotalINF) +
                    "</strong></td>" +
                    "</tr>");

                string strMontoaCobrar = string.Format("{0:0.00}", (montoTotalADT + montoTotalCHD + montoTotalINF));

                sbPostsDTF.Append(
                    "<tr>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px; color:#BC0606;'><strong>Total a Cobrar</strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px;'><strong></strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px;'><strong></strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px;'><strong></strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px;'><strong></strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px;'><strong></strong></td>" +
                    "<td style='font-size:13px; padding:5px; text-align:center; border-top:1px;'><strong>" +
                    "$" +
                    strMontoaCobrar +
                    "</strong></td>" +
                    "</tr>");

                str = str.Replace("[trContentDTF]", sbPostsDTF.ToString());

                /// Template Archivos
                var sbPostsArchivos = new StringBuilder();
                var archivoList     = solicitarFactFileNM.ArchivoList;
                if (!(archivoList == null || archivoList.Count == 0))
                {
                    foreach (var objArchivos in archivoList)
                    {
                        sbPostsArchivos.Append(
                            "<tr>" +
                            "<td>" +
                            "<span style='font-size: 8pt; font-family: Arial; width:130px;'>" +
                            "<p>" +
                            "<div style='width:130px;'>" +
                            "<a class='dowloandarchivo' data-rutaarchivo='" +
                            objArchivos.RutaArchivo +
                            "' data-nombrearchivo='" +
                            objArchivos.NomArchivo +
                            "' href='" +
                            objArchivos.UrlArchivo +
                            "'>" +
                            objArchivos.NomArchivo +
                            "</a>" +
                            "</div>" +
                            "</p>" +
                            "</span>" +
                            "</td>" +
                            "</tr>");
                    }
                    str = str.Replace("[Archivos]", sbPostsArchivos.ToString());
                }
                else
                {
                    str = str.Replace("[Archivos]", string.Empty);
                }

                return(str);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }