Ejemplo n.º 1
0
        private void EliminarOrden(Int32 CodOrden)
        {
            Double ImporteCobrodoDocumento = 0;
            Int32  CodDocumentoa           = 0;
            Double ImporteEfectivoOrden    = 0;
            Double ImporteCobradoTarjeta   = 0;
            Double ImporteGatantia         = 0;
            Double ImporteCheque           = 0;

            cOrden          orden       = new cOrden();
            cCobroDocumento cob         = new cCobroDocumento();
            cCobroTarjeta   cobTarj     = new cCobroTarjeta();
            cGarantia       garantia    = new Clases.cGarantia();
            cCobroCheque    cobroCheque = new cCobroCheque();
            cCheque         cheque      = new cCheque();

            ImporteEfectivoOrden    = orden.GetTotalEfectivoOrden(CodOrden);
            ImporteCobrodoDocumento = cob.GetTotalDocumentoCobrado(CodOrden);
            CodDocumentoa           = cob.GetCodDocumentoxCodOrden(CodOrden);
            ImporteCobradoTarjeta   = cobTarj.GetImporteCobradoxCodOrden(CodOrden);
            ImporteGatantia         = garantia.GetImporteCobradoxCodOrden(CodOrden);
            ImporteCheque           = cobroCheque.GetTotalChequeCobrado(CodOrden);

            cMovimiento mov = new cMovimiento();
            cDocumento  doc = new cDocumento();


            SqlConnection con         = new SqlConnection(cConexion.Cadenacon());
            DateTime      Fecha       = DateTime.Now;
            string        Descripcion = "";

            con.Open();
            SqlTransaction tran;

            tran = con.BeginTransaction("TranOrden");
            try
            {
                if (ImporteEfectivoOrden > 0)
                {
                    Descripcion = "Anulación Cobro de efectivo, Orden " + CodOrden.ToString();
                    mov.GrabarMovimientoTransaccion(con, tran, -1 * ImporteEfectivoOrden, Descripcion, Fecha, Principal.CodUsuarioLogueado, null);
                }

                if (ImporteCobradoTarjeta > 0)
                {
                    Descripcion = "Anulación Cobro de tarjeta, Orden " + CodOrden.ToString();
                    mov.GrabarMovimientoTransaccion(con, tran, -1 * ImporteCobradoTarjeta, Descripcion, Fecha, Principal.CodUsuarioLogueado, null);
                }

                if (ImporteGatantia > 0)
                {
                    Descripcion = "Anulación Cobro de garantía, Orden " + CodOrden.ToString();
                    mov.GrabarMovimientoTransaccion(con, tran, -1 * ImporteGatantia, Descripcion, Fecha, Principal.CodUsuarioLogueado, null);
                }

                if (ImporteCheque > 0)
                {
                    //saco los codcheque para borrar los cobros cheques
                    DataTable tbcheque = cheque.GetChquesxCodOrden(CodOrden);
                    if (tbcheque.Rows.Count > 0)
                    {
                        for (int i = 0; i < tbcheque.Rows.Count; i++)
                        {
                            if (tbcheque.Rows[i]["CodCheque"].ToString() != "")
                            {
                                Int32 CodCheque = Convert.ToInt32(tbcheque.Rows[i]["CodCheque"].ToString());
                                cobroCheque.BorrarCobroCheque(con, tran, CodCheque);
                            }
                        }
                    }

                    Descripcion = "Anulación Cobro de cheque, Orden " + CodOrden.ToString();
                    mov.GrabarMovimientoTransaccion(con, tran, -1 * ImporteCheque, Descripcion, Fecha, Principal.CodUsuarioLogueado, null);
                }

                if (ImporteCobrodoDocumento > 0)
                {
                    Descripcion = "Anulación Cobro de Documento, Orden " + CodOrden.ToString();
                    cob.BorrarCobroDocumentoxCodDocumento(con, tran, CodDocumentoa);
                    mov.GrabarMovimientoTransaccion(con, tran, -1 * ImporteCobrodoDocumento, Descripcion, Fecha, Principal.CodUsuarioLogueado, null);
                }
                cTransferencia transferencia = new cTransferencia();
                garantia.BorrarGarantia(con, tran, CodOrden);
                cheque.BorrarchquexCodOrden(con, tran, CodOrden);
                doc.BorrarDocumentoxCodOrden(con, tran, CodOrden);
                cobTarj.BorrarCobroTarjeta(con, tran, CodOrden);
                orden.EliminarOrden(con, tran, CodOrden);
                transferencia.BorrarTransferencia(con, tran, CodOrden);
                tran.Commit();
                Mensaje("Orden de Trabajo eliminada correctamente, se actualizaron las cuentas");
                con.Close();
                Buscar();
            }
            catch (Exception)
            {
                tran.Rollback();
                con.Close();
                Mensaje("Hubo un error en el proceso de anulación");
                throw;
            }
        }