public ActionResult CmbFlujo_NotaCredito()
        {
            ba_Cbte_Ban_Info model = new ba_Cbte_Ban_Info();

            return(PartialView("_CmbFlujo_NotaCredito", model));
        }
        public ActionResult Consultar(int IdEmpresa = 0, int IdTipocbte = 0, decimal IdCbteCble = 0, bool Exito = false)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            ba_Cbte_Ban_Info model = bus_cbteban.get_info(IdEmpresa, IdTipocbte, IdCbteCble);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }

            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Banco", "NotaDeCreditoBanco", "Index");
            if (model.Estado == "I")
            {
                info.Modificar = false;
                info.Anular    = false;
            }
            ViewBag.Nuevo     = info.Nuevo;
            ViewBag.Modificar = info.Modificar;
            ViewBag.Anular    = info.Anular;
            #endregion

            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
            model.list_det             = bus_Cbte_Ban_x_ba_TipoFlujo.GetList(model.IdEmpresa, model.IdTipocbte, model.IdCbteCble);
            List_Banco_Flujo_Det.set_list(model.list_det, model.IdTransaccionSession);
            model.lst_det_ct = bus_det_ct.get_list(model.IdEmpresa, model.IdTipocbte, model.IdCbteCble);
            List_ct.set_list(model.lst_det_ct, model.IdTransaccionSession);
            cargar_combos(IdEmpresa, model.IdSucursal);
            SessionFixed.TipoPersona = model.IdTipo_Persona;

            if (Exito)
            {
                ViewBag.MensajeSuccess = MensajeSuccess;
            }

            #region Validacion Periodo
            ViewBag.MostrarBoton = true;
            if (!bus_periodo.ValidarFechaTransaccion(IdEmpresa, model.cb_Fecha, cl_enumeradores.eModulo.BANCO, model.IdSucursal, ref mensaje))
            {
                ViewBag.mensaje      = mensaje;
                ViewBag.MostrarBoton = false;
            }
            #endregion

            #region Validacion de conciliación bancaria
            if (!bus_ConciliacionDet.ValidarComprobanteEnConciliacion(IdEmpresa, IdTipocbte, IdCbteCble, ref mensaje))
            {
                ViewBag.mensaje      = mensaje;
                ViewBag.MostrarBoton = false;
            }
            #endregion

            return(View(model));
        }
        private bool validar(ba_Cbte_Ban_Info i_validar, ref string msg)
        {
            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cb_Fecha, cl_enumeradores.eModulo.BANCO, i_validar.IdSucursal, ref msg))
            {
                return(false);
            }
            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cb_Fecha, cl_enumeradores.eModulo.CONTA, i_validar.IdSucursal, ref msg))
            {
                return(false);
            }
            i_validar.lst_det_ct = List_ct.get_list(i_validar.IdTransaccionSession);

            if (i_validar.lst_det_ct.Count == 0)
            {
                msg = "El detalle del diario se encuentra vacío";
                return(false);
            }
            foreach (var item in i_validar.lst_det_ct)
            {
                if (string.IsNullOrEmpty(item.IdCtaCble))
                {
                    mensaje = "Faltan cuentas contables, por favor verifique";
                    return(false);
                }
            }
            if (Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero) != 0)
            {
                mensaje = "La suma de los detalles debe ser 0, por favor verifique";
                return(false);
            }
            if (i_validar.lst_det_ct.Where(q => q.dc_Valor == 0).Count() > 0)
            {
                mensaje = "Existen detalles con valor 0 en el debe o haber, por favor verifique";
                return(false);
            }
            if (i_validar.list_det.Count() > 0)
            {
                if (Math.Round(i_validar.list_det.Sum(q => q.Valor), 2, MidpointRounding.AwayFromZero) != i_validar.cb_Valor)
                {
                    mensaje = "La suma de los detalles del flujo debe ser igual a el valor del documento";
                    return(false);
                }
            }
            var cta = bus_banco_cuenta.get_info(i_validar.IdEmpresa, i_validar.IdBanco);

            if (cta == null)
            {
                mensaje = "Selecciona la cuenta bancaria";
                return(false);
            }
            if (cta.EsFlujoObligatorio)
            {
                if (i_validar.list_det.Count == 0)
                {
                    mensaje = "Falta distribución de flujo";
                    return(false);
                }
            }
            i_validar.IdPeriodo       = Convert.ToInt32(i_validar.cb_Fecha.ToString("yyyyMM"));
            i_validar.IdUsuario       = SessionFixed.IdUsuario;
            i_validar.IdUsuarioUltMod = SessionFixed.IdUsuario;
            i_validar.IdUsuario_Anu   = SessionFixed.IdUsuario;
            i_validar.IdUsuarioUltMod = SessionFixed.IdUsuario;
            i_validar.cb_Valor        = Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor_debe), 2, MidpointRounding.AwayFromZero);
            return(true);
        }
예제 #4
0
        public static void FileUploadComplete(object sender, DevExpress.Web.FileUploadCompleteEventArgs e)
        {
            #region Variables

            ba_Banco_Cuenta_List        ListaBanco  = new ba_Banco_Cuenta_List();
            List <ba_Banco_Cuenta_Info> Lista_Banco = new List <ba_Banco_Cuenta_Info>();
            ba_Banco_Cbte_List          ListaCbte   = new ba_Banco_Cbte_List();
            List <ba_Cbte_Ban_Info>     Lista_Cbte  = new List <ba_Cbte_Ban_Info>();
            tb_banco_Bus    bus_banco    = new tb_banco_Bus();
            tb_sucursal_Bus bus_sucursal = new tb_sucursal_Bus();

            int     cont = 0;
            decimal IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
            int     IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa);
            #endregion


            Stream stream = new MemoryStream(e.UploadedFile.FileBytes);
            if (stream.Length > 0)
            {
                IExcelDataReader reader = null;
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);

                #region Banco
                while (reader.Read())
                {
                    if (!reader.IsDBNull(0) && cont > 0)
                    {
                        ba_Banco_Cuenta_Info info = new ba_Banco_Cuenta_Info
                        {
                            IdEmpresa          = IdEmpresa,
                            IdBanco            = Convert.ToInt32(reader.GetValue(0)),
                            IdBanco_Financiero = Convert.ToInt32(reader.GetValue(1)),
                            ba_Tipo            = Convert.ToString(reader.GetValue(2)),
                            ba_Num_Cuenta      = Convert.ToString(reader.GetValue(3)),
                            ba_num_digito_cheq = Convert.ToInt32(reader.GetValue(4)),
                            IdCtaCble          = null,
                            IdUsuario          = SessionFixed.IdUsuario,
                        };
                        #region GetInfo
                        tb_banco_Info banco = bus_banco.get_info(info.IdBanco);
                        info.ba_descripcion          = banco.ba_descripcion + " " + info.ba_Tipo + " " + info.ba_Num_Cuenta;
                        info.Imprimir_Solo_el_cheque = false;
                        Lista_Banco.Add(info);
                        #endregion
                    }
                    else
                    {
                        cont++;
                    }
                }
                ListaBanco.set_list(Lista_Banco, IdTransaccionSession);
                #endregion

                cont = 0;
                //Para avanzar a la siguiente hoja de excel
                reader.NextResult();

                #region Cbte
                while (reader.Read())
                {
                    if (!reader.IsDBNull(0) && cont > 0)
                    {
                        ba_Cbte_Ban_Info info = new ba_Cbte_Ban_Info
                        {
                            IdEmpresa      = IdEmpresa,
                            IdTipo_Persona = Convert.ToString(reader.GetValue(0)),
                            Su_Descripcion = Convert.ToString(reader.GetValue(1)),
                            IdBanco        = Convert.ToInt32(reader.GetValue(2)),
                            cb_Fecha       = Convert.ToDateTime(reader.GetValue(3)),
                            cb_Observacion = Convert.ToString(reader.GetValue(4)),
                            cb_Valor       = Convert.ToInt32(reader.GetValue(5)),


                            IdUsuario = SessionFixed.IdUsuario,
                        };
                        #region GetInfo
                        tb_sucursal_Info sucursal = bus_sucursal.GetInfo(IdEmpresa, info.Su_Descripcion);
                        info.Su_Descripcion = sucursal.Su_Descripcion;
                        info.IdSucursal     = sucursal.IdSucursal;

                        Lista_Cbte.Add(info);
                        #endregion
                    }
                    else
                    {
                        cont++;
                    }
                }
                var ListCuenta = ListaBanco.get_list(IdTransaccionSession);

                var lst = (from q in ListCuenta
                           join c in Lista_Cbte
                           on q.IdBanco equals c.IdBanco
                           select new ba_Cbte_Ban_Info
                {
                    IdEmpresa = c.IdEmpresa,
                    IdTipo_Persona = c.IdTipo_Persona,
                    IdSucursal = c.IdSucursal,
                    ba_descripcion = q.ba_descripcion,
                    Su_Descripcion = c.Su_Descripcion,
                    IdBanco = c.IdBanco,
                    cb_Valor = c.cb_Valor,
                    cb_Fecha = c.cb_Fecha,
                    cb_Observacion = c.cb_Observacion
                }).ToList();

                Lista_Cbte = lst;
                ListaCbte.set_list(Lista_Cbte, IdTransaccionSession);
                #endregion
            }
        }
        private void Actualizar_Registros()
        {
            try
            {
                ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo_Info InfoParam_Banco = new ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo_Info();
                ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo_Bus  BusParam_Banco  = new ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo_Bus();

                InfoParam_Banco = BusParam_Banco.Get_info_Cbte_Ban_tipo_x_ct_CbteCble_tipo(param.IdEmpresa, "NDBA");
                int     IdTipo_rev  = InfoParam_Banco.IdTipoCbteCble_Anu;
                Boolean Actualizado = false;

                if (info_Archivo.IdProceso_bancario == "ROL_ELECTRONICO_BG")
                {
                    BList_Archivo_Excel[0].Secuencia = 1;
                }

                var lst = (from A in BList_Archivo_Actualizado
                           join E in BList_Archivo_Excel
                           on A.Id_Item equals E.Id_Item
                           select new
                {
                    id_Item = A.Id_Item,
                    IdEstadoRegistro_cat = A.IdEstadoRegistro_cat,
                    nom_EstadoRegistro = E.nom_EstadoRegistro,
                    IdArchivo = E.IdArchivo,
                    IdEmpresa = E.IdEmpresa,
                    Secuencia = E.Secuencia,
                    Valor_cobrado = E.Valor_procesado,
                    Genera_anulacion = A.Genera_anulacion,

                    IdEmpresa_pago = A.IdEmpresa_pago,
                    IdTipoCbte_pago = A.IdTipoCbte_pago,
                    IdCbteCble_pago = A.IdCbteCble_pago,
                    cb_Estado = A.cb_Estado
                });
                progressBarActualizacion.Properties.Step        = 1;
                progressBarActualizacion.Properties.PercentView = true;
                progressBarActualizacion.Properties.Maximum     = lst.Count();
                progressBarActualizacion.Properties.Minimum     = 0;

                foreach (var item in lst)
                {
                    info_Archivo.Lst_Archivo_Transferencia_Det.FirstOrDefault(q => q.Secuencia == item.Secuencia).IdEstadoRegistro_cat = BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).IdEstadoRegistro_cat = item.IdEstadoRegistro_cat;
                    info_Archivo.Lst_Archivo_Transferencia_Det.FirstOrDefault(q => q.Secuencia == item.Secuencia).nom_EstadoRegistro   = BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).nom_EstadoRegistro = item.nom_EstadoRegistro;
                    BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).IdArchivo          = item.IdArchivo;
                    BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).IdEmpresa          = item.IdEmpresa;
                    BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).Secuencia          = item.Secuencia;
                    BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).Valor_cobrado      = item.Valor_cobrado;
                    BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).IdProceso_bancario = info_Archivo.IdProceso_bancario;
                    Actualizado = BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item).Actualizado = bus_Archivo_Det.Actualizar_registro(BList_Archivo_Actualizado.FirstOrDefault(q => q.Id_Item == item.id_Item));

                    if (!Actualizado)
                    {
                        MessageBox.Show("No se pudo actualizar los registros", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        break;
                    }
                    else
                    {
                        if (item.Genera_anulacion == true && item.cb_Estado == "A")
                        {
                            ba_Cbte_Ban_Bus  bus_cbteBan  = new ba_Cbte_Ban_Bus();
                            ba_Cbte_Ban_Info info_cbteBan = new ba_Cbte_Ban_Info();
                            info_cbteBan = bus_cbteBan.Get_Info_Cbte_Ban(Convert.ToInt32(item.IdEmpresa_pago), Convert.ToInt32(item.IdTipoCbte_pago), Convert.ToDecimal(item.IdCbteCble_pago), ref MensajeError);
                            if (info_cbteBan != null && info_cbteBan.IdEmpresa != 0)
                            {
                                ct_Cbtecble_Bus  CbteCble_B = new ct_Cbtecble_Bus();
                                ct_Cbtecble_Info CbteCble_I = new ct_Cbtecble_Info();

                                info_cbteBan.MotivoAnulacion = "Anulado x actualización de archivo";
                                info_cbteBan.IdUsuario_Anu   = param.IdUsuario;
                                info_cbteBan.FechaAnulacion  = param.Fecha_Transac;
                                decimal IdCbteCble_rev = 0;
                                CbteCble_B.ReversoCbteCble(Convert.ToInt32(item.IdEmpresa_pago), Convert.ToDecimal(item.IdCbteCble_pago), Convert.ToInt32(item.IdTipoCbte_pago), IdTipo_rev, ref IdCbteCble_rev, ref MensajeError, info_cbteBan.MotivoAnulacion);

                                info_cbteBan.IdTipoCbte_Anulacion = IdTipo_rev;
                                info_cbteBan.IdCbteCble_Anulacion = IdCbteCble_rev;
                                cp_orden_pago_cancelaciones_Bus OGPagos_B = new cp_orden_pago_cancelaciones_Bus();
                                OGPagos_B.Eliminar_OrdenPagoCancelaciones(info_cbteBan.IdEmpresa, info_cbteBan.IdTipocbte, info_cbteBan.IdCbteCble, ref MensajeError);
                                bus_cbteBan.AnularDB(info_cbteBan, ref MensajeError);
                            }
                        }
                    }
                    progressBarActualizacion.PerformStep();
                    progressBarActualizacion.Update();
                    gridControlActualizacion.RefreshDataSource();
                }
                BList_Archivo_Actualizado = new BindingList <ba_Archivo_Transferencia_Det_Info>(bus_Archivo_Det.Get_List_Archivo_transferencia_Det(info_Archivo.IdEmpresa, info_Archivo.IdArchivo));
                gridControlActualizacion.RefreshDataSource();

                Actualizado = bus_Archivo.Actualizar_Archivo(info_Archivo);
                if (Actualizado)
                {
                    MessageBox.Show("Archivo actualizado exitosamente", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
            catch (Exception ex)
            {
                string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name;
                MessageBox.Show(param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas) + ex.Message + " ", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString());
            }
        }
예제 #6
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                var ITEMS = ListExcel.ToList().FindAll(v => v.chk == true);


                if (!Validar())
                {
                    return;
                }


                ct_Periodo_Bus  BusPeriodo           = new ct_Periodo_Bus();
                ba_Cbte_Ban_Bus BUSBANCOSCOMPROBANTE = new ba_Cbte_Ban_Bus();
                List <ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo_Info> _Parametros_ = _BusCbtBanXCtbtCble.Get_List_Cbte_Ban_tipo_x_ct_CbteCble_tipo(param.IdEmpresa);

                foreach (var item in ITEMS)
                {
                    var prm = _Parametros_.First(v => v.CodTipoCbteBan == item.CodTipoCbteBan.Trim());
                    ct_Cbtecble_Info CabeceraCbte = new ct_Cbtecble_Info();
                    CabeceraCbte.IdEmpresa        = param.IdEmpresa;
                    CabeceraCbte.IdTipoCbte       = prm.IdTipoCbteCble;
                    CabeceraCbte.IdPeriodo        = BusPeriodo.Get_Info_Periodo(param.IdEmpresa, item.cb_Fecha, ref MensajeError).IdPeriodo;
                    CabeceraCbte.IdUsuario        = param.IdUsuario;
                    CabeceraCbte.IdUsuarioUltModi = param.IdUsuario;
                    CabeceraCbte.Mayorizado       = "N";
                    CabeceraCbte.cb_Fecha         = item.cb_Fecha;
                    CabeceraCbte.cb_Observacion   = item.cb_Observacion;
                    CabeceraCbte.cb_Valor         = item.dc_Valor;
                    CabeceraCbte.Estado           = "A";
                    CabeceraCbte.cb_FechaTransac  = param.Fecha_Transac;
                    CabeceraCbte.cb_FechaUltModi  = CabeceraCbte.cb_FechaTransac;


                    ct_Cbtecble_det_Info DetalleInfo = new ct_Cbtecble_det_Info();
                    DetalleInfo.IdEmpresa     = param.IdEmpresa;
                    DetalleInfo.IdTipoCbte    = CabeceraCbte.IdEmpresa;
                    DetalleInfo.secuencia     = 1;
                    DetalleInfo.IdCtaCble     = IdCtaCbleBanco;
                    DetalleInfo.IdCentroCosto = item.IdCentroCosto;
                    if (item.CodTipoCbteBan == "NCBA")
                    {
                        DetalleInfo.dc_Valor = item.dc_Valor * -1;
                    }
                    if (item.CodTipoCbteBan == "NDBA")
                    {
                        DetalleInfo.dc_Valor = item.dc_Valor;
                    }
                    DetalleInfo.dc_Observacion = item.cb_Observacion;
                    CabeceraCbte._cbteCble_det_lista_info.Add(DetalleInfo);

                    DetalleInfo               = new ct_Cbtecble_det_Info();
                    DetalleInfo.IdEmpresa     = param.IdEmpresa;
                    DetalleInfo.IdTipoCbte    = CabeceraCbte.IdEmpresa;
                    DetalleInfo.secuencia     = 2;
                    DetalleInfo.IdCtaCble     = item.IdCtaCble;
                    DetalleInfo.IdCentroCosto = item.IdCentroCosto;
                    if (item.CodTipoCbteBan == "NCBA")
                    {
                        DetalleInfo.dc_Valor = item.dc_Valor;
                    }
                    if (item.CodTipoCbteBan == "NDBA")
                    {
                        DetalleInfo.dc_Valor = item.dc_Valor * -1;
                    }
                    DetalleInfo.dc_Observacion = item.cb_Observacion;
                    CabeceraCbte._cbteCble_det_lista_info.Add(DetalleInfo);


                    decimal IdCbte  = 0;
                    string  Mensaje = "";
                    string  Codigo  = "";



                    BUS_CONTABILIDAD.GrabarDB(CabeceraCbte, ref IdCbte, ref Mensaje);

                    item.IdHASH = string.Format("{0}-MOVI_BAN$-s{1}-{2}-{3}-d{4}-{5}-{6}", fileName, item.SecuenciaRelacionado, item.cb_Fecha, item.CodTipoCbteBan, item.cb_Cheque, item.cb_Observacion, item.dc_Valor);
                    ba_Cbte_Ban_Info COMPROBANTEBANCARIO = new ba_Cbte_Ban_Info();
                    COMPROBANTEBANCARIO.IdEmpresa        = param.IdEmpresa;
                    COMPROBANTEBANCARIO.IdCbteCble       = IdCbte;
                    COMPROBANTEBANCARIO.IdTipocbte       = CabeceraCbte.IdTipoCbte;
                    COMPROBANTEBANCARIO.Cod_Cbtecble     = Codigo;
                    COMPROBANTEBANCARIO.IdPeriodo        = CabeceraCbte.IdPeriodo;
                    COMPROBANTEBANCARIO.IdBanco          = IdBanco;
                    COMPROBANTEBANCARIO.cb_Fecha         = item.cb_Fecha;
                    COMPROBANTEBANCARIO.cb_Observacion   = item.cb_Observacion;
                    COMPROBANTEBANCARIO.cb_Valor         = item.dc_Valor;
                    COMPROBANTEBANCARIO.cb_ChequeImpreso = "N";
                    COMPROBANTEBANCARIO.IdUsuario        = param.IdUsuario;
                    COMPROBANTEBANCARIO.IdUsuarioUltMod  = param.IdUsuario;
                    COMPROBANTEBANCARIO.ip            = param.ip;
                    COMPROBANTEBANCARIO.nom_pc        = param.nom_pc;
                    COMPROBANTEBANCARIO.Fecha_Transac = param.Fecha_Transac;
                    COMPROBANTEBANCARIO.Fecha_UltMod  = COMPROBANTEBANCARIO.Fecha_Transac;
                    //COMPROBANTEBANCARIO.IdTipoNota = null;
                    COMPROBANTEBANCARIO.IdTransaccion = item.IdHASH;
                    BUSBANCOSCOMPROBANTE.GrabarDB(COMPROBANTEBANCARIO, ref MensajeError);
                    item.IdCbteCble = IdCbte;
                    item.IdTipocbte = CabeceraCbte.IdTipoCbte;
                }

                GetList_NotadasDeb_Cred(ITEMS);
                Close();
            }
            catch (Exception ex)
            {
                string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name;
                MessageBox.Show(param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas) + ex.Message + " ", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString());
            }
        }
        public ActionResult CmbTipoNota()
        {
            ba_Cbte_Ban_Info model = new ba_Cbte_Ban_Info();

            return(PartialView("_CmbTipoNota", model));
        }
예제 #8
0
        private bool validar(ba_Cbte_Ban_Info i_validar, ref string msg)
        {
            i_validar.lst_det_canc_op = List_op.get_list();
            i_validar.lst_det_ct      = List_ct.get_list(i_validar.IdTransaccionSession);

            if (i_validar.lst_det_ct.Count == 0)
            {
                msg = "El detalle del diario se encuentra vacío";
                return(false);
            }

            foreach (var item in i_validar.lst_det_ct)
            {
                if (string.IsNullOrEmpty(item.IdCtaCble))
                {
                    mensaje = "Faltan cuentas contables, por favor verifique";
                    return(false);
                }
            }

            if (Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero) != 0)
            {
                mensaje = "La suma de los detalles debe ser 0, por favor verifique";
                return(false);
            }
            if (i_validar.lst_det_ct.Where(q => q.dc_Valor == 0).Count() > 0)
            {
                mensaje = "Existen detalles con valor 0 en el debe o haber, por favor verifique";
                return(false);
            }
            if (i_validar.IdEntidad != 0 && i_validar.IdEntidad != null)
            {
                var persona = bus_persona.get_info(i_validar.IdEmpresa, i_validar.IdTipo_Persona, Convert.ToDecimal(i_validar.IdEntidad));
                if (persona == null)
                {
                    msg = "La persona seleccionada no corresponde al tipo asignado";
                    return(false);
                }
                i_validar.IdPersona          = persona.IdPersona;
                i_validar.IdPersona_Girado_a = persona.IdPersona;

                if (Math.Round(i_validar.lst_det_canc_op.Sum(q => q.MontoAplicado), 2, MidpointRounding.AwayFromZero) != Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor_debe), 2, MidpointRounding.AwayFromZero))
                {
                    msg = "Los valores ingresados no concuerdan con el valor del diario";
                    return(false);
                }
                if (i_validar.IdCbteCble == 0)
                {
                    i_validar.cb_Observacion += " Canc./ ";
                    foreach (var item in i_validar.lst_det_canc_op)
                    {
                        i_validar.cb_Observacion += item.Referencia + "/";
                    }
                }
            }


            i_validar.IdPeriodo       = Convert.ToInt32(i_validar.cb_Fecha.ToString("yyyyMM"));
            i_validar.IdUsuario       = SessionFixed.IdUsuario;
            i_validar.IdUsuarioUltMod = SessionFixed.IdUsuario;
            i_validar.IdUsuario_Anu   = SessionFixed.IdUsuario;
            i_validar.IdUsuarioUltMod = SessionFixed.IdUsuario;
            i_validar.cb_Valor        = Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor_debe), 2, MidpointRounding.AwayFromZero);
            return(true);
        }
예제 #9
0
        private bool validar(ba_Cbte_Ban_Info i_validar, ref string msg)
        {
            i_validar.lst_det_canc_op = List_op.get_list(i_validar.IdTransaccionSession);
            i_validar.lst_det_ct      = List_ct.get_list(i_validar.IdTransaccionSession);
            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cb_Fecha, cl_enumeradores.eModulo.BANCO, i_validar.IdSucursal, ref msg))
            {
                return(false);
            }
            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cb_Fecha, cl_enumeradores.eModulo.CONTA, i_validar.IdSucursal, ref msg))
            {
                return(false);
            }
            if (i_validar.IdEntidad == 0)
            {
                msg = "Seleccione el beneficiario";
                return(false);
            }
            if (i_validar.lst_det_canc_op.Count == 0)
            {
                msg = "Seleccione las órdenes de pago a ser canceladas";
                return(false);
            }
            if (i_validar.lst_det_ct.Count == 0)
            {
                msg = "El detalle del diario se encuentra vacío";
                return(false);
            }

            foreach (var item in i_validar.lst_det_ct)
            {
                if (string.IsNullOrEmpty(item.IdCtaCble))
                {
                    mensaje = "Faltan cuentas contables, por favor verifique";
                    return(false);
                }
            }

            if (Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero) != 0)
            {
                mensaje = "La suma de los detalles debe ser 0, por favor verifique";
                return(false);
            }
            if (i_validar.lst_det_ct.Where(q => q.dc_Valor == 0).Count() > 0)
            {
                mensaje = "Existen detalles con valor 0 en el debe o haber, por favor verifique";
                return(false);
            }

            var persona = bus_persona.get_info(i_validar.IdEmpresa, i_validar.IdTipo_Persona, Convert.ToDecimal(i_validar.IdEntidad));

            if (persona == null)
            {
                msg = "La persona seleccionada no corresponde al tipo asignado";
                return(false);
            }
            i_validar.IdPersona          = persona.IdPersona;
            i_validar.IdPersona_Girado_a = persona.IdPersona;

            if (Math.Round(i_validar.lst_det_canc_op.Sum(q => q.MontoAplicado), 2, MidpointRounding.AwayFromZero) != Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor_debe), 2, MidpointRounding.AwayFromZero))
            {
                msg = "Los valores ingresados no concuerdan con el valor del diario";
                return(false);
            }

            if (i_validar.list_det.Count() > 0)
            {
                if (Math.Round(i_validar.list_det.Sum(q => q.Valor), 2, MidpointRounding.AwayFromZero) != Convert.ToDouble(i_validar.cb_Valor))
                {
                    mensaje = "La suma de los detalles del flujo debe ser igual a el valor del documento";
                    return(false);
                }
            }
            var cta = bus_banco_cuenta.get_info(i_validar.IdEmpresa, i_validar.IdBanco);

            if (cta == null)
            {
                mensaje = "Selecciona la cuenta bancaria";
                return(false);
            }
            if (cta.EsFlujoObligatorio)
            {
                if (i_validar.list_det.Count == 0)
                {
                    mensaje = "Falta distribución de flujo";
                    return(false);
                }
            }
            i_validar.IdPeriodo       = Convert.ToInt32(i_validar.cb_Fecha.ToString("yyyyMM"));
            i_validar.IdUsuario       = SessionFixed.IdUsuario;
            i_validar.IdUsuarioUltMod = SessionFixed.IdUsuario;
            i_validar.IdUsuario_Anu   = SessionFixed.IdUsuario;
            i_validar.cb_Valor        = Math.Round(i_validar.lst_det_ct.Sum(q => q.dc_Valor_debe), 2, MidpointRounding.AwayFromZero);
            i_validar.ValorEnLetras   = funciones.NumeroALetras(i_validar.cb_Valor.ToString());

            var param = bus_param.get_info(i_validar.IdEmpresa);

            if (!(param.PermitirSobreGiro ?? false))
            {
                var Valor = Math.Round(i_validar.lst_det_ct.Where(q => q.IdCtaCble == cta.IdCtaCble).Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero);
                if (!bus_banco_cuenta.ValidarSaldoCuenta(i_validar.IdEmpresa, cta.IdCtaCble, Valor))
                {
                    mensaje = "No se puede guardar la transacción por sobre giro en la cuenta";
                    return(false);
                }
            }
            return(true);
        }
        void get_detalle()
        {
            try
            {         // se crea el comprobante contable
                string           cod_CbteCble = "";
                ba_Cbte_Ban_Info comprobante_bancario_info = new ba_Cbte_Ban_Info();
                comprobante_bancario_info.IdEmpresa        = param.IdEmpresa;
                comprobante_bancario_info.IdCbteCble       = 0;
                comprobante_bancario_info.IdTipocbte       = (int)parametro_banco_info.IdTipoCbte_x_Prestamo;
                comprobante_bancario_info.Cod_Cbtecble     = (comprobante_bancario_info.Cod_Cbtecble == "" || comprobante_bancario_info.Cod_Cbtecble == null || comprobante_bancario_info.Cod_Cbtecble == "0") ? cod_CbteCble : comprobante_bancario_info.Cod_Cbtecble;
                comprobante_bancario_info.IdPeriodo        = Convert.ToInt32(Convert.ToDateTime(dte_Fecha.EditValue).Year.ToString() + Convert.ToDateTime(dte_Fecha.EditValue).Month.ToString().PadLeft(2, '0'));
                comprobante_bancario_info.IdBanco          = cmb_banco.get_BaCuentaInfo().IdBanco;
                comprobante_bancario_info.IdProveedor      = null;
                comprobante_bancario_info.cb_Fecha         = Convert.ToDateTime(dte_Fecha.EditValue);   //duda
                comprobante_bancario_info.cb_Observacion   = "Nota de Débtio de la Cuota#: " + Info_DetPrestamo.NumCuota + " ,del Préstamo#: " + Info_DetPrestamo.IdPrestamo + " y Valor: " + txe_Mon_x_Can.EditValue;
                comprobante_bancario_info.cb_secuencia     = (comprobante_bancario_info.cb_secuencia == 0) ? 0 : comprobante_bancario_info.cb_secuencia;
                comprobante_bancario_info.cb_Valor         = Convert.ToDouble(txe_Mon_x_Can.EditValue);
                comprobante_bancario_info.Estado           = "A";
                comprobante_bancario_info.IdUsuario        = param.IdUsuario;
                comprobante_bancario_info.Fecha_Transac    = param.Fecha_Transac;
                comprobante_bancario_info.cb_ChequeImpreso = "N";
                comprobante_bancario_info.ip     = param.ip;
                comprobante_bancario_info.nom_pc = param.nom_pc;
                Info_DetCancela.Info_CbteBan     = comprobante_bancario_info;

                // creo el diario contable
                ct_Cbtecble_Info comprobante_contable_info = new ct_Cbtecble_Info();

                comprobante_contable_info.IdEmpresa      = Info_DetPrestamo.IdEmpresa;
                comprobante_contable_info.IdTipoCbte     = (int)parametro_banco_info.IdTipoCbte_x_Prestamo;
                comprobante_contable_info.IdPeriodo      = Convert.ToInt32(Convert.ToDateTime(dte_Fecha.EditValue).Year.ToString() + Convert.ToDateTime(dte_Fecha.EditValue).Month.ToString().PadLeft(2, '0'));
                comprobante_contable_info.cb_Fecha       = Convert.ToDateTime(dte_Fecha.EditValue);
                comprobante_contable_info.cb_Valor       = Convert.ToDouble(txe_Mon_x_Can.EditValue);
                comprobante_contable_info.cb_Observacion = "Nota de Débtio de la Cuota#: " + Info_DetPrestamo.NumCuota + " ,del Préstamo#: " + Info_DetPrestamo.IdPrestamo + " y Valor: " + txe_Mon_x_Can.EditValue;
                comprobante_contable_info.Estado         = "A";
                comprobante_contable_info.Anio           = Convert.ToDateTime(dte_Fecha.EditValue).Year;
                comprobante_contable_info.Mes            = Convert.ToDateTime(dte_Fecha.EditValue).Month;
                comprobante_contable_info.IdUsuario      = param.IdUsuario;

                comprobante_contable_info.cb_FechaTransac = param.Fecha_Transac;

                //Detalle Diario

                //Debe cuota
                ct_Cbtecble_det_Info debe = new ct_Cbtecble_det_Info();
                debe.IdEmpresa      = Info_DetPrestamo.IdEmpresa;
                debe.IdTipoCbte     = (int)parametro_banco_info.IdTipoCbte_x_Prestamo;
                debe.IdCtaCble      = parametro_banco_info.IdCtaCble_prestamos;
                debe.dc_Observacion = "Abono capital de la cuota#: " + Info_DetPrestamo.NumCuota + " ,del Préstamo#: " + Info_DetPrestamo.IdPrestamo + "por: " + Info_DetPrestamo.AbonoCapital;
                debe.dc_Valor       = Convert.ToDouble(Info_DetPrestamo.AbonoCapital);
                if (debe.dc_Valor != 0)
                {
                    comprobante_contable_info._cbteCble_det_lista_info.Add(debe);
                }

                //Debe interes
                ct_Cbtecble_det_Info debe_In = new ct_Cbtecble_det_Info();
                debe_In.IdEmpresa      = Info_DetPrestamo.IdEmpresa;
                debe_In.IdTipoCbte     = (int)parametro_banco_info.IdTipoCbte_x_Prestamo;
                debe_In.IdCtaCble      = parametro_banco_info.IdCtaCble_Interes;
                debe_In.dc_Observacion = "Intere de la cuota#: " + Info_DetPrestamo.NumCuota + " ,del Préstamo#: " + Info_DetPrestamo.IdPrestamo + " por : " + Info_DetPrestamo.Interes;

                debe_In.dc_Valor = Convert.ToDouble(Info_DetPrestamo.Interes);
                if (debe_In.dc_Valor != 0)
                {
                    comprobante_contable_info._cbteCble_det_lista_info.Add(debe_In);
                }

                //Haber
                ct_Cbtecble_det_Info Haber = new ct_Cbtecble_det_Info();
                Haber.IdEmpresa      = Info_DetPrestamo.IdEmpresa;
                Haber.IdTipoCbte     = (int)parametro_banco_info.IdTipoCbte_x_Prestamo;
                Haber.IdCtaCble      = cmb_banco.get_BaCuentaInfo().IdCtaCble;   //Info_DetPrestamo.IdCtaCble_Prestamo;
                Haber.dc_Observacion = "Nota de Débito de la Cuota#: " + Info_DetPrestamo.NumCuota + " ,del Préstamo#: " + Info_DetPrestamo.IdPrestamo + " por: " + txe_Mon_x_Can.EditValue;
                Haber.dc_Valor       = Convert.ToDouble(txe_Mon_x_Can.EditValue) * -1;
                comprobante_contable_info._cbteCble_det_lista_info.Add(Haber);



                Info_DetCancela.Info_CbteCble = comprobante_contable_info;
            }
            catch (Exception ex)
            {
                string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name;
                NameMetodo = NameMetodo + " - " + ex.ToString();
                MessageBox.Show(NameMetodo + " " + param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas)
                                , param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString());
            }
        }
        public Boolean GenerarDiario(int IdEmpresa, int IdSucursal, decimal IdRegistroGasto, ref string msg, ref decimal idCbteCble, ref string CodTipod)
        {
            try{
                #region Declaracion
                ct_Periodo_Info  Per_I      = new ct_Periodo_Info();
                ct_Cbtecble_Info CbteCble_I = new ct_Cbtecble_Info();
                List <imp_ordencompra_ext_x_imp_gastosxImport_Det_Info> ListaDetalle  = new List <imp_ordencompra_ext_x_imp_gastosxImport_Det_Info>();
                imp_gastosximport_x_empresa_Data                    BusGastosXEmpresa = new imp_gastosximport_x_empresa_Data();
                List <imp_gastosximport_x_empresa_Info>             lstGastosXEmpresa = new List <imp_gastosximport_x_empresa_Info>();
                List <imp_ordencompra_ext_x_imp_gastosxImport_Info> Lst   = new List <imp_ordencompra_ext_x_imp_gastosxImport_Info>();
                imp_ordencompra_ext_x_imp_gastosxImport_Info        _Info = new imp_ordencompra_ext_x_imp_gastosxImport_Info();
                int                         IdTipoCbte   = 0;
                ba_Cbte_Ban_Bus             BusCbteBanco = new ba_Cbte_Ban_Bus();
                ct_Periodo_Data             Per_B        = new ct_Periodo_Data();
                List <ct_Cbtecble_det_Info> LstCbteCble  = new List <ct_Cbtecble_det_Info>();
                cl_parametrosGenerales_Bus  param        = cl_parametrosGenerales_Bus.Instance;
                ba_Cbte_Ban_Info            CbteBan_I    = new ba_Cbte_Ban_Info();
                string                      MensajeError = "";
                #endregion
                #region ObtenerGastoImportacion
                Lst = Get_List_ordencompra_ext_x_imp_gastosxImport_Para_Contabilizar(IdEmpresa, IdSucursal, IdRegistroGasto);
                foreach (var item in Lst)
                {
                    _Info.IdOrdenCompraExt  = item.IdOrdenCompraExt;
                    _Info.IdProveedor       = item.IdProveedor;
                    _Info.IdEmpresa         = item.IdEmpresa;
                    _Info.IdSucusal         = item.IdSucusal;
                    _Info.IdRegistroGasto   = item.IdRegistroGasto;
                    _Info.Observacion       = item.Observacion;
                    _Info.IdCtaCble_Banco   = item.IdCtaCble_Banco;
                    _Info.IdBanco           = item.IdBanco;
                    _Info.CodOrdenCompraExt = item.CodOrdenCompraExt;
                    IdTipoCbte  = item.IdTipoCbte;
                    _Info.Fecha = item.Fecha;
                    _Info.IdCtaCble_Importacion = item.IdCtaCble_Importacion;

                    imp_ordencompra_ext_x_imp_gastosxImport_Det_Info Det = new imp_ordencompra_ext_x_imp_gastosxImport_Det_Info();
                    Det.IdGastoImp = item.IdGastoImp;
                    Det.Valor      = item.Valor;
                    _Info.ListaGastos.Add(Det);
                }
                #endregion
                Per_I             = Per_B.Get_Info_Periodo(_Info.IdEmpresa, _Info.Fecha, ref MensajeError);
                lstGastosXEmpresa = BusGastosXEmpresa.Get_List_gastosximport_x_empresa(IdEmpresa);
                var DatosDiario = from p in _Info.ListaGastos
                                  join w in lstGastosXEmpresa
                                  on new { p.IdGastoImp } equals new { w.IdGastoImp }
                select new { p.IdGastoImp, w.IdCtaCble, p.Valor, w.debCre_Provicion, w.debcre_DebBanco };

                if (DatosDiario.ToList().Count != _Info.ListaGastos.Count)
                {
                    msg = "No existen parametros contables verifique que los parametros Contables Esten Llenados correctametne /n Comunicarce Cons sistemas";
                    return(false);
                }
                #region CbteCble_Detalle
                foreach (var item in DatosDiario)
                {
                    ct_Cbtecble_det_Info obj = new ct_Cbtecble_det_Info();
                    obj.dc_Observacion = "Cont. X gastos De Imp " + _Info.CodOrdenCompraExt + " / " + _Info.IdOrdenCompraExt + " / " + _Info.Observacion + " / " + Get_Descripcion(item.IdGastoImp);
                    obj.IdCtaCble      = item.IdCtaCble;
                    obj.IdTipoCbte     = IdTipoCbte;
                    obj.IdEmpresa      = _Info.IdEmpresa;
                    if (CodTipod == "DEBBAN")
                    {
                        if (item.debcre_DebBanco == "C")
                        {
                            obj.dc_Valor = item.Valor * -1;
                        }
                        else
                        {
                            obj.dc_Valor = item.Valor;
                        }
                    }
                    if (CodTipod == "PROVI")
                    {
                        if (item.debcre_DebBanco == "D")
                        {
                            obj.dc_Valor = item.Valor * -1;
                        }
                        else
                        {
                            obj.dc_Valor = item.Valor;
                        }
                    }
                    LstCbteCble.Add(obj);
                }
                ct_Cbtecble_det_Info obj2 = new ct_Cbtecble_det_Info();
                double Valor = 0;
                foreach (var item in _Info.ListaGastos)
                {
                    Valor = Valor + item.Valor;
                }
                obj2.dc_Observacion = "Cont. X gastos De Imp " + _Info.CodOrdenCompraExt + " / " + _Info.IdOrdenCompraExt + " / " + _Info.Observacion + " / Importacion";
                obj2.IdCtaCble      = _Info.IdCtaCble_Banco;
                obj2.IdTipoCbte     = IdTipoCbte;
                obj2.IdEmpresa      = _Info.IdEmpresa;
                ba_Banco_Cuenta_Bus B_banco = new ba_Banco_Cuenta_Bus();
                var Banco = B_banco.Get_Info_Banco_Cuenta(param.IdEmpresa, _Info.IdBanco);
                if (CodTipod == "DEBBAN")
                {
                    obj2.IdCtaCble = Banco.IdCtaCble;
                    obj2.dc_Valor  = Valor * -1;
                }
                if (CodTipod == "PROVI")
                {
                    obj2.IdCtaCble = _Info.IdCtaCble_Importacion;
                    obj2.dc_Valor  = Valor;
                }
                LstCbteCble.Add(obj2);
                #endregion
                #region CbteCble
                CbteCble_I.IdEmpresa  = _Info.IdEmpresa;
                CbteCble_I.IdTipoCbte = IdTipoCbte;
                CbteCble_I.IdPeriodo  = Per_I.IdPeriodo;
                CbteCble_I.cb_Fecha   = Convert.ToDateTime(_Info.Fecha.ToShortDateString());
                CbteCble_I.cb_Valor   = Valor;
                if (CodTipod == "DEBBAN")
                {
                    CbteCble_I.CodCbteCble = "DEBBAN";
                }
                if (CodTipod == "PROVI")
                {
                    CbteCble_I.CodCbteCble = "PROVI";
                }
                CbteCble_I.cb_Observacion           = "Cont. X Imp. " + _Info.CodOrdenCompraExt + " / " + _Info.IdOrdenCompraExt + "Gastos de Importacion. / " + _Info.Observacion;
                CbteCble_I.Secuencia                = 0;
                CbteCble_I.Estado                   = "A";
                CbteCble_I.Anio                     = _Info.Fecha.Year;
                CbteCble_I.Mes                      = _Info.Fecha.Month;
                CbteCble_I.IdUsuario                = param.IdUsuario;
                CbteCble_I.IdUsuarioUltModi         = param.IdUsuario;
                CbteCble_I.cb_FechaTransac          = param.GetDateServer();
                CbteCble_I.cb_FechaUltModi          = param.GetDateServer();
                CbteCble_I.Mayorizado               = "N";
                CbteCble_I._cbteCble_det_lista_info = LstCbteCble;
                // decimal idCbteCble = 0;
                string          cod_CbteCble = "";
                ct_Cbtecble_Bus CbteCble_B   = new ct_Cbtecble_Bus();
                if (CbteCble_B.GrabarDB(CbteCble_I, ref idCbteCble, ref msg) == false)
                {
                    return(false);
                }
                oData.ModificarDB(_Info, idCbteCble);
                #endregion
                if (CodTipod == "DEBBAN")
                {
                    #region CbteBan_I
                    CbteBan_I.IdEmpresa       = param.IdEmpresa;
                    CbteBan_I.IdTipocbte      = IdTipoCbte;
                    CbteBan_I.IdCbteCble      = idCbteCble;
                    CbteBan_I.Cod_Cbtecble    = cod_CbteCble;
                    CbteBan_I.IdPeriodo       = Per_I.IdPeriodo;
                    CbteBan_I.IdBanco         = _Info.IdBanco;
                    CbteBan_I.cb_Fecha        = Convert.ToDateTime(_Info.Fecha.ToShortDateString());
                    CbteBan_I.cb_Observacion  = _Info.Observacion.Trim();
                    CbteBan_I.cb_Valor        = Valor;
                    CbteBan_I.Estado          = "A";
                    CbteBan_I.IdUsuario       = param.IdUsuario;
                    CbteBan_I.IdUsuario_Anu   = param.IdUsuario;
                    CbteBan_I.FechaAnulacion  = param.Fecha_Transac;
                    CbteBan_I.Fecha_Transac   = param.Fecha_Transac;
                    CbteBan_I.Fecha_UltMod    = param.Fecha_Transac;
                    CbteBan_I.IdUsuarioUltMod = param.IdUsuario;
                    CbteBan_I.ip     = param.ip;
                    CbteBan_I.nom_pc = param.nom_pc;
                    if (BusCbteBanco.GrabarDB(CbteBan_I, ref MensajeError) == false)
                    {
                        return(false);
                    }
                    #endregion
                }
                imp_ordencompra_ext_x_ct_cbtecble_Data DataOrdxCbt         = new imp_ordencompra_ext_x_ct_cbtecble_Data();
                imp_ordencompra_ext_x_ct_cbtecble_Info ordCompraxCbte_info = new imp_ordencompra_ext_x_ct_cbtecble_Info();
                ordCompraxCbte_info.ct_IdEmpresa         = ordCompraxCbte_info.imp_IdEmpresa = _Info.IdEmpresa;
                ordCompraxCbte_info.imp_IdOrdenCompraExt = _Info.IdOrdenCompraExt;
                ordCompraxCbte_info.imp_IdSucusal        = _Info.IdSucusal;
                ordCompraxCbte_info.ct_IdTipoCbte        = IdTipoCbte;
                ordCompraxCbte_info.ct_IdCbteCble        = idCbteCble;
                ordCompraxCbte_info.TipoReg = "Gast";
                DataOrdxCbt.GuardarDB(ordCompraxCbte_info, ref mensaje);


                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GenerarDiario", ex.Message), ex)
                      {
                          EntityType = typeof(imp_ordencompra_ext_x_imp_gastosxImport_Bus)
                      };
            }
        }
예제 #12
0
        public Boolean GenerarDiarioFOB(int IdEmpresa, int IdSucursal, decimal IdImportacion, ref string msg, ref decimal idCbteCble, string idCbteCble_Proveedor)
        {
            try
            {
                imp_ordencompra_ext_x_ct_cbtecble_Info ordCompraxCbte_info = new imp_ordencompra_ext_x_ct_cbtecble_Info();
                ct_Periodo_Info  Per_I      = new ct_Periodo_Info();
                ct_Cbtecble_Info CbteCble_I = new ct_Cbtecble_Info();
                List <imp_ordencompra_ext_x_imp_gastosxImport_Det_Info> ListaDetalle  = new List <imp_ordencompra_ext_x_imp_gastosxImport_Det_Info>();
                imp_gastosximport_x_empresa_Data                    BusGastosXEmpresa = new imp_gastosximport_x_empresa_Data();
                List <imp_gastosximport_x_empresa_Info>             lstGastosXEmpresa = new List <imp_gastosximport_x_empresa_Info>();
                List <imp_ordencompra_ext_x_imp_gastosxImport_Info> Lst = new List <imp_ordencompra_ext_x_imp_gastosxImport_Info>();
                ba_Cbte_Ban_Bus             BusCbteBanco    = new ba_Cbte_Ban_Bus();
                ct_Periodo_Data             Per_B           = new ct_Periodo_Data();
                List <ct_Cbtecble_det_Info> LstCbteCble     = new List <ct_Cbtecble_det_Info>();
                cl_parametrosGenerales_Bus  param           = cl_parametrosGenerales_Bus.Instance;
                ba_Cbte_Ban_Info            CbteBan_I       = new ba_Cbte_Ban_Info();
                imp_Parametros_Data         Data_parametros = new imp_Parametros_Data();
                var tip = Data_parametros.Get_Info_Parametros(IdEmpresa);
                imp_ordencompra_ext_x_ct_cbtecble_Data DataOrdxCbt = new imp_ordencompra_ext_x_ct_cbtecble_Data();
                cp_proveedor_Data        _Prove_D = new cp_proveedor_Data();
                imp_ordencompra_ext_Info _Info    = oData.Get_Info_ordencompra_ext(IdEmpresa, IdSucursal, IdImportacion);
                string MensajeError = "";
                var    proveedor    = _Prove_D.Get_Info_Proveedor(param.IdEmpresa, _Info.IdProveedor);
                Per_I = Per_B.Get_Info_Periodo(_Info.IdEmpresa, _Info.ci_fecha, ref MensajeError);
                ct_Cbtecble_det_Info _CbteCble_I   = new ct_Cbtecble_det_Info();
                in_categorias_data   producto_data = new in_categorias_data();
                //var producto = producto_data.ObtenerObjeto(param.IdEmpresa, _Info.IdCategoria).ca_Categoria;
                var    producto    = producto_data.Get_List_categorias(0);
                string Observacion = _CbteCble_I.dc_Observacion = proveedor.pr_nombre + ".: " + _Info.CodOrdenCompraExt + ": //" + IdImportacion + "//" + "Cont. de la  Importacion #" + IdImportacion +
                                                                  @"'\'" + _Info.CodOrdenCompraExt + " Diario FOB" + _Info.ci_Observacion + " : " + producto + ". " + _Info.ci_tonelaje + " T";
                _CbteCble_I.IdCtaCble  = _Info.IdCtaCble_import;
                _CbteCble_I.IdEmpresa  = IdEmpresa;
                _CbteCble_I.IdTipoCbte = tip.IdTipoCbte_DiarioFob;
                _CbteCble_I.dc_Valor   = _Info.FOB;
                LstCbteCble.Add(_CbteCble_I);
                ct_Cbtecble_det_Info obj2 = new ct_Cbtecble_det_Info();
                obj2.IdCtaCble      = _Info.IdCtaCble_import;
                obj2.dc_Observacion = Observacion;// "Cont. de la  Importacion #" + IdImportacion + @"'\'" + _Info.CodOrdenCompraExt + " Diario FOB" + _Info.ci_Observacion;
                obj2.IdCtaCble      = idCbteCble_Proveedor;
                obj2.IdTipoCbte     = tip.IdTipoCbte_DiarioFob;
                obj2.IdEmpresa      = _Info.IdEmpresa;
                obj2.dc_Valor       = _Info.FOB * -1;
                LstCbteCble.Add(obj2);

                CbteCble_I.IdEmpresa   = _Info.IdEmpresa;
                CbteCble_I.IdTipoCbte  = tip.IdTipoCbte_DiarioFob;
                CbteCble_I.CodCbteCble = "IM";
                CbteCble_I.IdPeriodo   = Per_I.IdPeriodo;
                CbteCble_I.cb_Fecha    = Convert.ToDateTime(_Info.ci_fecha.ToShortDateString());
                CbteCble_I.cb_Valor    = _Info.FOB;
                if (_Info.CodOrdenCompraExt == null || _Info.CodOrdenCompraExt == "")
                {
                    _Info.CodOrdenCompraExt = "IMP" + IdImportacion;
                }
                CbteCble_I.cb_Observacion           = Observacion;
                CbteCble_I.Secuencia                = 0;
                CbteCble_I.Estado                   = "A";
                CbteCble_I.Anio                     = _Info.ci_fecha.Year;
                CbteCble_I.Mes                      = _Info.ci_fecha.Month;
                CbteCble_I.IdUsuario                = param.IdUsuario;
                CbteCble_I.IdUsuarioUltModi         = param.IdUsuario;
                CbteCble_I.cb_FechaTransac          = param.GetDateServer();
                CbteCble_I.cb_FechaUltModi          = param.GetDateServer();
                CbteCble_I.Mayorizado               = "N";
                CbteCble_I._cbteCble_det_lista_info = LstCbteCble;
                ct_Cbtecble_Bus CbteCble_B   = new ct_Cbtecble_Bus();
                string          cod_CbteCble = "";

                if (CbteCble_B.GrabarDB(CbteCble_I, ref idCbteCble, ref msg) == false)
                {
                    return(false);
                }
                ordCompraxCbte_info.ct_IdEmpresa         = ordCompraxCbte_info.imp_IdEmpresa = _Info.IdEmpresa;
                ordCompraxCbte_info.imp_IdOrdenCompraExt = _Info.IdOrdenCompraExt;
                ordCompraxCbte_info.imp_IdSucusal        = _Info.IdSucusal;
                ordCompraxCbte_info.ct_IdTipoCbte        = tip.IdTipoCbte_DiarioFob;
                ordCompraxCbte_info.ct_IdCbteCble        = idCbteCble;
                ordCompraxCbte_info.TipoReg = "FOB";
                DataOrdxCbt.GuardarDB(ordCompraxCbte_info, ref mensaje);

                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "consultaDiariosxImportacion", ex.Message), ex)
                      {
                          EntityType = typeof(imp_ordencompra_ext_Bus)
                      };
            }
        }
예제 #13
0
        public bool modificarDB(ba_Cbte_Ban_Info info, cl_enumeradores.eTipoCbteBancario TipoCbteBanco)
        {
            Entities_banco             Context_b   = new Entities_banco();
            Entities_contabilidad      Context_ct  = new Entities_contabilidad();
            Entities_cuentas_por_pagar Context_cxp = new Entities_cuentas_por_pagar();

            try
            {
                #region Variables
                string  TipoCbteBancoS = TipoCbteBanco.ToString();
                int     secuencia      = 1;
                decimal Idcancelacion  = 0;
                #endregion

                #region Diario
                var diario = Context_ct.ct_cbtecble.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipocbte && q.IdCbteCble == info.IdCbteCble).FirstOrDefault();
                if (diario == null)
                {
                    return(false);
                }

                diario.cb_Fecha         = info.cb_Fecha.Date;
                diario.cb_Observacion   = info.cb_Observacion;
                diario.IdPeriodo        = info.IdPeriodo = Convert.ToInt32(info.cb_Fecha.Date.ToString("yyyyMM"));
                diario.IdSucursal       = info.IdSucursal;
                diario.cb_Valor         = info.cb_Valor;
                diario.cb_FechaUltModi  = DateTime.Now;
                diario.IdUsuarioUltModi = info.IdUsuario;

                var lst_diario_det = Context_ct.ct_cbtecble_det.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipocbte && q.IdCbteCble == info.IdCbteCble).ToList();
                Context_ct.ct_cbtecble_det.RemoveRange(lst_diario_det);
                foreach (var item in info.lst_det_ct)
                {
                    Context_ct.ct_cbtecble_det.Add(new ct_cbtecble_det
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdTipoCbte         = info.IdTipocbte,
                        IdCbteCble         = info.IdCbteCble,
                        secuencia          = secuencia++,
                        IdGrupoPresupuesto = item.IdGrupoPresupuesto,
                        IdCtaCble          = item.IdCtaCble,
                        dc_Valor           = Math.Round(item.dc_Valor, 2, MidpointRounding.AwayFromZero),
                        dc_para_conciliar  = item.dc_para_conciliar
                    });
                }
                #endregion
                var list_det = Context_b.ba_Cbte_Ban_x_ba_TipoFlujo.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipocbte == info.IdTipocbte && q.IdCbteCble == info.IdCbteCble).ToList();
                Context_b.ba_Cbte_Ban_x_ba_TipoFlujo.RemoveRange(list_det);
                info.list_det = info.list_det == null ? new List <ba_Cbte_Ban_x_ba_TipoFlujo_Info>() : info.list_det;
                if (info.list_det.Count > 0)
                {
                    foreach (var item in info.list_det)
                    {
                        Context_b.ba_Cbte_Ban_x_ba_TipoFlujo.Add(new ba_Cbte_Ban_x_ba_TipoFlujo
                        {
                            IdEmpresa   = info.IdEmpresa,
                            IdTipocbte  = info.IdTipocbte,
                            IdCbteCble  = info.IdCbteCble,
                            IdTipoFlujo = item.IdTipoFlujo,
                            Valor       = item.Valor,
                            Porcentaje  = item.Porcentaje,
                            Secuencia   = item.Secuencia
                        });
                    }
                }

                #region Cbte bancario
                var mov_ban = Context_b.ba_Cbte_Ban.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipocbte == info.IdTipocbte && q.IdCbteCble == info.IdCbteCble).FirstOrDefault();
                if (mov_ban == null)
                {
                    Context_b.ba_Cbte_Ban.Add(new ba_Cbte_Ban
                    {
                        IdEmpresa                = info.IdEmpresa,
                        IdCbteCble               = info.IdCbteCble,
                        IdTipocbte               = info.IdTipocbte,
                        Cod_Cbtecble             = info.Cod_Cbtecble,
                        IdPeriodo                = info.IdPeriodo,
                        IdBanco                  = info.IdBanco,
                        cb_Fecha                 = info.cb_Fecha,
                        cb_Observacion           = info.cb_Observacion,
                        cb_Valor                 = info.cb_Valor,
                        cb_Cheque                = info.cb_Cheque,
                        Estado                   = "A",
                        IdPersona_Girado_a       = info.IdPersona_Girado_a,
                        cb_giradoA               = info.cb_giradoA,
                        cb_ciudadChq             = info.cb_ciudadChq,
                        IdTipoFlujo              = info.IdTipoFlujo,
                        IdTipoNota               = info.IdTipoNota,
                        ValorEnLetras            = info.ValorEnLetras,
                        IdSucursal               = info.IdSucursal,
                        IdEstado_Cbte_Ban_cat    = info.IdEstado_Cbte_Ban_cat,
                        IdEstado_Preaviso_ch_cat = info.IdEstado_Preaviso_ch_cat,
                        IdEstado_cheque_cat      = info.IdEstado_cheque_cat,
                        IdPersona                = info.IdPersona,
                        IdEntidad                = info.IdEntidad,
                        IdTipo_Persona           = info.IdTipo_Persona,
                        IdSolicitudPago          = info.IdSolicitudPago,
                        IdUsuarioUltMod          = info.IdUsuarioUltMod,
                        Fecha_UltMod             = DateTime.Now
                    });
                }
                else
                {
                    mov_ban.Cod_Cbtecble             = info.Cod_Cbtecble;
                    mov_ban.IdPeriodo                = info.IdPeriodo;
                    mov_ban.IdBanco                  = info.IdBanco;
                    mov_ban.cb_Fecha                 = info.cb_Fecha;
                    mov_ban.cb_Observacion           = info.cb_Observacion;
                    mov_ban.cb_Valor                 = info.cb_Valor;
                    mov_ban.cb_Cheque                = info.cb_Cheque;
                    mov_ban.IdPersona_Girado_a       = info.IdPersona_Girado_a;
                    mov_ban.cb_giradoA               = info.cb_giradoA;
                    mov_ban.cb_ciudadChq             = info.cb_ciudadChq;
                    mov_ban.IdTipoFlujo              = info.IdTipoFlujo;
                    mov_ban.IdTipoNota               = info.IdTipoNota;
                    mov_ban.ValorEnLetras            = info.ValorEnLetras;
                    mov_ban.IdSucursal               = info.IdSucursal;
                    mov_ban.IdEstado_Cbte_Ban_cat    = info.IdEstado_Cbte_Ban_cat;
                    mov_ban.IdEstado_Preaviso_ch_cat = info.IdEstado_Preaviso_ch_cat;
                    mov_ban.IdEstado_cheque_cat      = info.IdEstado_cheque_cat;
                    mov_ban.IdPersona                = info.IdPersona;
                    mov_ban.IdEntidad                = info.IdEntidad;
                    mov_ban.IdTipo_Persona           = info.IdTipo_Persona;
                    mov_ban.IdUsuarioUltMod          = info.IdUsuarioUltMod;
                    mov_ban.Fecha_UltMod             = DateTime.Now;
                    mov_ban.IdSolicitudPago          = info.IdSolicitudPago;
                }
                #endregion

                switch (TipoCbteBanco)
                {
                case cl_enumeradores.eTipoCbteBancario.CHEQ:
                    #region Guardo cancelaciones
                    var lst_cancelaciones = Context_cxp.cp_orden_pago_cancelaciones.Where(q => q.IdEmpresa_pago == info.IdEmpresa && q.IdTipoCbte_pago == info.IdTipocbte && q.IdCbteCble_pago == info.IdCbteCble).ToList();
                    Context_cxp.cp_orden_pago_cancelaciones.RemoveRange(lst_cancelaciones);
                    Idcancelacion = odata_can.get_id(info.IdEmpresa);
                    secuencia     = 1;
                    foreach (var item in info.lst_det_canc_op)
                    {
                        Context_cxp.cp_orden_pago_cancelaciones.Add(new cp_orden_pago_cancelaciones
                        {
                            IdEmpresa     = info.IdEmpresa,
                            Idcancelacion = Idcancelacion,
                            Secuencia     = secuencia++,

                            IdEmpresa_op   = item.IdEmpresa_op,
                            IdOrdenPago_op = item.IdOrdenPago_op,
                            Secuencia_op   = item.Secuencia_op,

                            IdEmpresa_cxp  = item.IdEmpresa_cxp,
                            IdTipoCbte_cxp = item.IdTipoCbte_cxp,
                            IdCbteCble_cxp = item.IdCbteCble_cxp,

                            IdEmpresa_pago  = info.IdEmpresa,
                            IdTipoCbte_pago = info.IdTipocbte,
                            IdCbteCble_pago = info.IdCbteCble,

                            MontoAplicado    = item.MontoAplicado,
                            SaldoActual      = 0,
                            SaldoAnterior    = 0,
                            fechaTransaccion = DateTime.Now,
                            Observacion      = item.Observacion
                        });
                    }
                    #endregion
                    break;

                case cl_enumeradores.eTipoCbteBancario.DEPO:
                    #region Guardo ingresos
                    var lst_ing = Context_b.ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito.Where(q => q.mba_IdEmpresa == info.IdEmpresa && q.mba_IdTipocbte == info.IdTipocbte && q.mba_IdCbteCble == info.IdCbteCble).ToList();
                    Context_b.ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito.RemoveRange(lst_ing);
                    foreach (var item in info.lst_det_ing)
                    {
                        Context_b.ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito.Add(new ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito
                        {
                            mba_IdEmpresa  = info.IdEmpresa,
                            mba_IdTipocbte = info.IdTipocbte,
                            mba_IdCbteCble = info.IdCbteCble,

                            mcj_IdEmpresa  = item.mcj_IdEmpresa,
                            mcj_IdTipocbte = item.mcj_IdTipocbte,
                            mcj_IdCbteCble = item.mcj_IdCbteCble,
                            mcj_Secuencia  = item.mcj_Secuencia
                        });
                    }
                    #endregion
                    break;

                case cl_enumeradores.eTipoCbteBancario.NCBA:
                    break;

                case cl_enumeradores.eTipoCbteBancario.NDBA:
                    #region Guardo cancelaciones
                    var lst_cancelaciones_ndba = Context_cxp.cp_orden_pago_cancelaciones.Where(q => q.IdEmpresa_pago == info.IdEmpresa && q.IdTipoCbte_pago == info.IdTipocbte && q.IdCbteCble_pago == info.IdCbteCble).ToList();
                    Context_cxp.cp_orden_pago_cancelaciones.RemoveRange(lst_cancelaciones_ndba);
                    Idcancelacion = odata_can.get_id(info.IdEmpresa);
                    secuencia     = 1;
                    foreach (var item in info.lst_det_canc_op)
                    {
                        Context_cxp.cp_orden_pago_cancelaciones.Add(new cp_orden_pago_cancelaciones
                        {
                            IdEmpresa     = info.IdEmpresa,
                            Idcancelacion = Idcancelacion,
                            Secuencia     = secuencia++,

                            IdEmpresa_op   = item.IdEmpresa_op,
                            IdOrdenPago_op = item.IdOrdenPago_op,
                            Secuencia_op   = item.Secuencia_op,

                            IdEmpresa_cxp  = item.IdEmpresa_cxp,
                            IdTipoCbte_cxp = item.IdTipoCbte_cxp,
                            IdCbteCble_cxp = item.IdCbteCble_cxp,

                            IdEmpresa_pago  = info.IdEmpresa,
                            IdTipoCbte_pago = info.IdTipocbte,
                            IdCbteCble_pago = info.IdCbteCble,

                            MontoAplicado    = item.MontoAplicado,
                            SaldoActual      = 0,
                            SaldoAnterior    = 0,
                            fechaTransaccion = DateTime.Now,
                            Observacion      = item.Observacion
                        });
                    }
                    #endregion
                    break;
                }

                Context_ct.SaveChanges();
                Context_b.SaveChanges();
                Context_cxp.SaveChanges();

                Context_ct.Dispose();
                Context_b.Dispose();
                Context_cxp.Dispose();
                return(true);
            }
            catch (Exception)
            {
                Context_ct.Dispose();
                Context_b.Dispose();
                Context_cxp.Dispose();
                throw;
            }
        }
예제 #14
0
        public bool guardarDB(ba_Cbte_Ban_Info info, cl_enumeradores.eTipoCbteBancario TipoCbteBanco)
        {
            Entities_banco             Context_b   = new Entities_banco();
            Entities_contabilidad      Context_ct  = new Entities_contabilidad();
            Entities_cuentas_por_pagar Context_cxp = new Entities_cuentas_por_pagar();

            try
            {
                #region Variables
                string  TipoCbteBancoS = TipoCbteBanco.ToString();
                int     secuencia      = 1;
                decimal Idcancelacion  = 0;
                #endregion

                #region Datos para el diario
                var e_TipoCbteBan = Context_b.ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo.Where(q => q.CodTipoCbteBan == TipoCbteBancoS && q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                if (e_TipoCbteBan == null)
                {
                    return(false);
                }
                info.IdTipocbte = e_TipoCbteBan.IdTipoCbteCble;
                info.IdCbteCble = odata_ct.get_id(info.IdEmpresa, info.IdTipocbte);
                #endregion

                #region Diario
                Context_ct.ct_cbtecble.Add(new ct_cbtecble
                {
                    IdEmpresa      = info.IdEmpresa,
                    IdTipoCbte     = info.IdTipocbte,
                    IdCbteCble     = info.IdCbteCble,
                    cb_Fecha       = info.cb_Fecha.Date,
                    cb_Observacion = info.cb_Observacion,
                    IdPeriodo      = info.IdPeriodo = Convert.ToInt32(info.cb_Fecha.Date.ToString("yyyyMM")),
                    IdSucursal     = info.IdSucursal,

                    cb_FechaTransac = DateTime.Now,
                    cb_Estado       = "A",
                    cb_Valor        = info.cb_Valor,
                    IdUsuario       = info.IdUsuario
                });

                foreach (var item in info.lst_det_ct)
                {
                    Context_ct.ct_cbtecble_det.Add(new ct_cbtecble_det
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdTipoCbte         = info.IdTipocbte,
                        IdCbteCble         = info.IdCbteCble,
                        IdGrupoPresupuesto = item.IdGrupoPresupuesto,
                        secuencia          = secuencia++,
                        IdCtaCble          = item.IdCtaCble,
                        dc_Valor           = Math.Round(item.dc_Valor, 2, MidpointRounding.AwayFromZero),
                        dc_para_conciliar  = item.dc_para_conciliar
                    });
                }
                #endregion

                #region Cbte bancario
                Context_b.ba_Cbte_Ban.Add(new ba_Cbte_Ban
                {
                    IdEmpresa                = info.IdEmpresa,
                    IdCbteCble               = info.IdCbteCble,
                    IdTipocbte               = info.IdTipocbte,
                    Cod_Cbtecble             = info.Cod_Cbtecble,
                    IdPeriodo                = info.IdPeriodo,
                    IdBanco                  = info.IdBanco,
                    cb_Fecha                 = info.cb_Fecha,
                    cb_Observacion           = info.cb_Observacion,
                    cb_Valor                 = info.cb_Valor,
                    cb_Cheque                = info.cb_Cheque,
                    Estado                   = "A",
                    IdPersona_Girado_a       = info.IdPersona_Girado_a,
                    cb_giradoA               = info.cb_giradoA,
                    cb_ciudadChq             = info.cb_ciudadChq,
                    IdTipoFlujo              = info.IdTipoFlujo,
                    IdTipoNota               = info.IdTipoNota,
                    ValorEnLetras            = info.ValorEnLetras,
                    IdSucursal               = info.IdSucursal,
                    IdEstado_Cbte_Ban_cat    = info.IdEstado_Cbte_Ban_cat,
                    IdEstado_Preaviso_ch_cat = info.IdEstado_Preaviso_ch_cat,
                    IdEstado_cheque_cat      = info.IdEstado_cheque_cat = "ESTCBEMI",
                    IdPersona                = info.IdPersona,
                    IdEntidad                = info.IdEntidad,
                    IdTipo_Persona           = info.IdTipo_Persona,
                    IdSolicitudPago          = info.IdSolicitudPago,

                    IdUsuario     = info.IdUsuario,
                    Fecha_Transac = info.Fecha_Transac,
                });
                #endregion

                #region Flujo
                info.list_det = info.list_det == null ? new List <ba_Cbte_Ban_x_ba_TipoFlujo_Info>() : info.list_det;
                if (info.list_det.Count > 0)
                {
                    foreach (var item in info.list_det)
                    {
                        Context_b.ba_Cbte_Ban_x_ba_TipoFlujo.Add(new ba_Cbte_Ban_x_ba_TipoFlujo
                        {
                            IdEmpresa   = info.IdEmpresa,
                            IdTipocbte  = info.IdTipocbte,
                            IdCbteCble  = info.IdCbteCble,
                            IdTipoFlujo = item.IdTipoFlujo,
                            Valor       = item.Valor,
                            Porcentaje  = item.Porcentaje,
                            Secuencia   = item.Secuencia
                        });
                    }
                }
                #endregion
                switch (TipoCbteBanco)
                {
                case cl_enumeradores.eTipoCbteBancario.CHEQ:
                    #region Guardo cancelaciones
                    Idcancelacion = odata_can.get_id(info.IdEmpresa);
                    secuencia     = 1;
                    foreach (var item in info.lst_det_canc_op)
                    {
                        Context_cxp.cp_orden_pago_cancelaciones.Add(new cp_orden_pago_cancelaciones
                        {
                            IdEmpresa     = info.IdEmpresa,
                            Idcancelacion = Idcancelacion,
                            Secuencia     = secuencia++,

                            IdEmpresa_op   = item.IdEmpresa_op,
                            IdOrdenPago_op = item.IdOrdenPago_op,
                            Secuencia_op   = item.Secuencia_op,

                            IdEmpresa_cxp  = item.IdEmpresa_cxp,
                            IdTipoCbte_cxp = item.IdTipoCbte_cxp,
                            IdCbteCble_cxp = item.IdCbteCble_cxp,

                            IdEmpresa_pago  = info.IdEmpresa,
                            IdTipoCbte_pago = info.IdTipocbte,
                            IdCbteCble_pago = info.IdCbteCble,

                            MontoAplicado    = item.MontoAplicado,
                            SaldoActual      = 0,
                            SaldoAnterior    = 0,
                            fechaTransaccion = DateTime.Now,
                            Observacion      = item.Observacion
                        });
                    }
                    #endregion

                    var cheque = Context_b.ba_Talonario_cheques_x_banco.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdBanco == info.IdBanco && q.Num_cheque == info.cb_Cheque).FirstOrDefault();
                    if (cheque != null)
                    {
                        cheque.IdEmpresa_cbtecble_Usado  = info.IdEmpresa;
                        cheque.IdTipoCbte_cbtecble_Usado = info.IdTipocbte;
                        cheque.IdCbteCble_cbtecble_Usado = info.IdCbteCble;
                        cheque.Usado = true;
                    }
                    break;

                case cl_enumeradores.eTipoCbteBancario.DEPO:
                    #region Guardo ingresos
                    foreach (var item in info.lst_det_ing)
                    {
                        Context_b.ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito.Add(new ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito
                        {
                            mba_IdEmpresa  = info.IdEmpresa,
                            mba_IdTipocbte = info.IdTipocbte,
                            mba_IdCbteCble = info.IdCbteCble,

                            mcj_IdEmpresa  = item.mcj_IdEmpresa,
                            mcj_IdTipocbte = item.mcj_IdTipocbte,
                            mcj_IdCbteCble = item.mcj_IdCbteCble,
                            mcj_Secuencia  = item.mcj_Secuencia
                        });
                    }
                    #endregion
                    break;

                case cl_enumeradores.eTipoCbteBancario.NCBA:
                    break;

                case cl_enumeradores.eTipoCbteBancario.NDBA:
                    #region Guardo cancelaciones
                    Idcancelacion = odata_can.get_id(info.IdEmpresa);
                    secuencia     = 1;
                    foreach (var item in info.lst_det_canc_op)
                    {
                        Context_cxp.cp_orden_pago_cancelaciones.Add(new cp_orden_pago_cancelaciones
                        {
                            IdEmpresa     = info.IdEmpresa,
                            Idcancelacion = Idcancelacion,
                            Secuencia     = secuencia++,

                            IdEmpresa_op   = item.IdEmpresa_op,
                            IdOrdenPago_op = item.IdOrdenPago_op,
                            Secuencia_op   = item.Secuencia_op,

                            IdEmpresa_cxp  = item.IdEmpresa_cxp,
                            IdTipoCbte_cxp = item.IdTipoCbte_cxp,
                            IdCbteCble_cxp = item.IdCbteCble_cxp,

                            IdEmpresa_pago  = info.IdEmpresa,
                            IdTipoCbte_pago = info.IdTipocbte,
                            IdCbteCble_pago = info.IdCbteCble,

                            MontoAplicado    = item.MontoAplicado,
                            SaldoActual      = 0,
                            SaldoAnterior    = 0,
                            fechaTransaccion = DateTime.Now,
                            Observacion      = item.Observacion
                        });
                    }
                    #endregion
                    break;
                }

                Context_ct.SaveChanges();
                Context_b.SaveChanges();
                Context_cxp.SaveChanges();

                Context_ct.Dispose();
                Context_b.Dispose();
                Context_cxp.Dispose();
                return(true);
            }
            catch (Exception)
            {
                Context_ct.Dispose();
                Context_b.Dispose();
                Context_cxp.Dispose();
                throw;
            }
        }
예제 #15
0
        public bool ContabilizarDB(ba_Archivo_Transferencia_Info info)
        {
            try
            {
                ba_Cbte_Ban_Data odata_cbte = new ba_Cbte_Ban_Data();
                tb_banco_procesos_bancarios_x_empresa_Data odataProceso = new tb_banco_procesos_bancarios_x_empresa_Data();
                using (Entities_banco db = new Entities_banco())
                {
                    var proceso = odataProceso.get_info(info.IdEmpresa, info.IdProceso_bancario);
                    if (proceso == null)
                    {
                        return(false);
                    }

                    var cbte = new ba_Cbte_Ban_Info
                    {
                        IdEmpresa      = info.IdEmpresa,
                        cb_Fecha       = info.Fecha,
                        IdSucursal     = info.IdSucursal,
                        IdBanco        = info.IdBanco,
                        cb_Observacion = "Archivo # " + info.IdArchivo.ToString() + " " + info.Observacion,
                        IdTipoNota     = proceso.IdTipoNota,
                        IdUsuario      = info.IdUsuario,
                        list_det       = new List <ba_Cbte_Ban_x_ba_TipoFlujo_Info>(info.Lst_Flujo.Select(q => new ba_Cbte_Ban_x_ba_TipoFlujo_Info
                        {
                            IdTipoFlujo = q.IdTipoFlujo,
                            Valor       = q.Valor,
                            Porcentaje  = q.Porcentaje,
                            IdEmpresa   = info.IdEmpresa
                        }).ToList()),
                        lst_det_ct = new List <ct_cbtecble_det_Info>(info.Lst_diario.Select(q => new ct_cbtecble_det_Info
                        {
                            IdCtaCble           = q.IdCtaCble,
                            dc_Valor            = q.dc_Valor,
                            dc_para_conciliar   = q.dc_para_conciliar,
                            IdCentroCosto       = q.IdCentroCosto,
                            IdPunto_cargo       = q.IdPunto_cargo,
                            IdPunto_cargo_grupo = q.IdPunto_cargo_grupo
                        }).ToList()),
                        lst_det_canc_op = new List <cp_orden_pago_cancelaciones_Info>(info.Lst_det.Select(q => new cp_orden_pago_cancelaciones_Info
                        {
                            IdEmpresa_op   = q.IdEmpresa_OP,
                            IdOrdenPago_op = q.IdOrdenPago,
                            Secuencia_op   = q.Secuencia_OP,

                            IdEmpresa_cxp  = q.IdEmpresa_cxp,
                            IdTipoCbte_cxp = q.IdTipoCbte_cxp,
                            IdCbteCble_cxp = q.IdCbteCble_cxp,
                            MontoAplicado  = q.Valor,

                            Observacion = "Archivo # " + info.IdArchivo.ToString() + " " + q.Referencia
                        }).ToList())
                    };
                    if (odata_cbte.guardarDB(cbte, Info.Helps.cl_enumeradores.eTipoCbteBancario.NDBA))
                    {
                        var Entity = db.ba_Archivo_Transferencia.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdArchivo == info.IdArchivo).FirstOrDefault();
                        if (Entity != null)
                        {
                            Entity.Contabilizado        = true;
                            Entity.Fecha_Proceso        = DateTime.Now;
                            Entity.IdUsuarioContabiliza = info.IdUsuario;
                            Entity.IdTipoCbte           = cbte.IdTipocbte;
                            Entity.IdCbteCble           = cbte.IdCbteCble;
                            db.SaveChanges();
                        }
                    }
                }


                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public ba_Cbte_Ban_Info ArmarDiario(cxc_LiquidacionTarjeta_Info info, string IdCtaCble_tarjeta)
        {
            Entities_banco db_b = new Entities_banco();

            try
            {
                var TipoCbte = db_b.ba_Cbte_Ban_tipo_x_ct_CbteCble_tipo.Where(q => q.IdEmpresa == info.IdEmpresa && q.CodTipoCbteBan == "NCBA").FirstOrDefault();
                if (TipoCbte == null)
                {
                    return(null);
                }

                if (info.IdTipoCbte_ct == null)
                {
                    info.IdTipoCbte_ct = TipoCbte.IdTipoCbteCble;
                }

                ba_Cbte_Ban_Info diario = new ba_Cbte_Ban_Info
                {
                    IdEmpresa       = info.IdEmpresa,
                    IdTipocbte      = Convert.ToInt32(info.IdTipoCbte_ct),
                    IdCbteCble      = info.IdCbteCble_ct == null ? 0 : Convert.ToInt32(info.IdCbteCble_ct),
                    cb_Fecha        = info.Fecha,
                    IdUsuario       = info.IdUsuarioCreacion,
                    IdUsuarioUltMod = info.IdUsuarioModificacion,
                    Estado          = "A",
                    IdBanco         = info.IdBanco,
                    cb_Valor        = Math.Round(info.ListaCobros.Sum(q => q.Valor), 2, MidpointRounding.AwayFromZero),
                    IdSucursal      = info.IdSucursal,
                    cb_Observacion  = "LIQ. TARJ. #" + info.IdLiquidacion + " " + info.Observacion,
                    lst_det_ct      = new List <ct_cbtecble_det_Info>()
                };
                int Secuencia = 1;
                var banco     = db_b.ba_Banco_Cuenta.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdBanco == info.IdBanco).FirstOrDefault();
                diario.lst_det_ct.Add(new ct_cbtecble_det_Info
                {
                    secuencia              = Secuencia++,
                    IdCtaCble              = banco.IdCtaCble,
                    dc_Valor               = Math.Round(diario.cb_Valor - info.ListaDet.Sum(q => q.Valor), 2, MidpointRounding.AwayFromZero),
                    dc_para_conciliar      = true,
                    dc_para_conciliar_null = true,
                });
                foreach (var item in info.ListaDet)
                {
                    diario.lst_det_ct.Add(new ct_cbtecble_det_Info
                    {
                        secuencia = Secuencia++,
                        IdCtaCble = item.IdCtaCble,
                        dc_Valor  = Math.Round(item.Valor, 2, MidpointRounding.AwayFromZero),
                    });
                }
                diario.lst_det_ct.Add(new ct_cbtecble_det_Info
                {
                    secuencia = Secuencia++,
                    IdCtaCble = IdCtaCble_tarjeta,
                    dc_Valor  = Math.Round(info.Valor, 2, MidpointRounding.AwayFromZero) * -1,
                });

                diario.lst_det_canc_op = new List <Info.CuentasPorPagar.cp_orden_pago_cancelaciones_Info>();
                diario.lst_det_ing     = new List <ba_Caja_Movimiento_x_Cbte_Ban_x_Deposito_Info>();

                if (Math.Round(diario.lst_det_ct.Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero) != 0)
                {
                    return(null);
                }

                if (diario.lst_det_ct.Where(q => string.IsNullOrEmpty(q.IdCtaCble)).Count() > 0)
                {
                    return(null);
                }
                db_b.Dispose();
                return(diario);
            }
            catch (Exception)
            {
                throw;
            }
        }